WebTransport: getStats() 方法

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

实验性: 这是一项实验性技术
在生产中使用此技术之前,请仔细检查浏览器兼容性表格

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

注意:此功能在 Web Workers 中可用。

WebTransport 接口的 getStats() 方法会异步返回一个包含 HTTP/3 连接统计信息的对象。

语法

js
getStats()

参数

无。

返回值

一个 Promise,它解析为一个包含 HTTP/3 连接统计信息的对象。返回的对象可能有以下属性/统计数据

时间戳

一个 DOMHighResTimeStamp,指示收集统计信息的时间戳,相对于 1970 年 1 月 1 日 UTC。

bytesSent

一个正整数,表示在 QUIC 连接上发送的字节数,包括重传。请注意,此计数不包括 QUIC 使用的协议(如 UDP)的额外数据,或任何其他外部帧。

packetsSent

一个正整数,表示在 QUIC 连接上发送的数据包数量,包括已知已丢失的数据包。

packetsLost

一个正整数,表示在 QUIC 连接上丢失的数据包数量。当数据包被声明为丢失时,此值会增加,如果随后收到,则会减少。

numOutgoingStreamsCreated

一个正整数,表示在 QUIC 连接上创建的出站 QUIC 流的数量。

numIncomingStreamsCreated

一个正整数,表示在 QUIC 连接上创建的入站 QUIC 流的数量。

bytesReceived

一个正整数,表示在 QUIC 连接上接收的总字节数。此计数包括来自流的重复数据,但不包括 QUIC 使用的协议(如 UDP)的额外数据,或任何其他外部帧。

packetsReceived

一个正整数,表示在 QUIC 连接上接收的总数据包数量,包括无法处理的数据包。

smoothedRtt

一个 DOMHighResTimeStamp,包含当前在连接上观察到的平滑 往返时间 (RTT),它是在考虑了确认延迟后,根据终结点的 RTT 样本指数加权移动平均计算得出的。

rttVariation

一个 DOMHighResTimeStamp,包含当前在连接上观察到的往返时间样本的平均变化。

minRtt

一个 DOMHighResTimeStamp,包含在整个连接中观察到的最小往返时间。

数据报

一个包含通过连接进行数据报传输的统计信息的对象。该对象具有以下属性

时间戳

一个 DOMHighResTimeStamp,指示收集统计信息的时间戳,相对于 1970 年 1 月 1 日 UTC。

expiredOutgoing

一个正整数,表示由于过期而被从发送队列中丢弃的数据报数量。请注意,发送队列中数据报在过期前的最大年龄可以在 outgoingMaxAge 中找到。

droppedIncoming

一个正整数,表示被丢弃的入站数据报的数量。如果应用程序在新的数据报填满 readable接收队列之前未读取它们,则会丢弃入站数据报。

lostOutgoing

一个正整数,表示已声明丢失的已发送数据报的数量。请注意,数据报可能会被声明为丢失,例如,如果在超时内没有收到确认,或者先收到了更晚数据报的确认。

示例

下面的示例使用 await 等待 getStats() 返回的 Promise。当 Promise fulfilled 时,stats 对象中 bytesSent 属性的结果将被记录到控制台。

js
const stats = await transport.getStats();
console.log(`Bytes send: ${stats.bytesSent}`);

规范

规范
WebTransport
# dom-webtransport-getstats

浏览器兼容性