WebTransportSendStream: getStats() 方法

可用性有限

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

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

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

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

WebTransportSendStream 接口的 getStats() 方法会异步返回一个包含当前流统计信息的对象。

统计信息包括写入流的总字节数、已发送的字节数(忽略数据包开销)、至少已发送一次的字节数以及已确认的字节数(直到第一个未确认的按顺序字节)。因此,它提供了一种衡量应用程序在该特定流上向服务器发送字节速度的指标。

语法

js
getStats()

参数

无。

返回值

一个 Promise,它会解析为一个包含当前流统计信息的对象。返回的对象具有以下属性:

bytesAcknowledged

一个正整数,表示已写入此流并且已通过 QUIC 的 ACK 机制由服务器确认收到的字节数。只计算到第一个未确认字节(不包括该字节)为止的顺序字节。此数字只能增加,且始终小于或等于 bytesSent。当连接使用 HTTP/2 时,此值将等于 bytesSent

bytesSent

一个正整数,表示至少已发送一次(但不一定已确认)的已写入此流的字节数。此数字只能增加,且始终小于或等于 bytesWritten。请注意,此计数不包括作为网络开销发送的字节(例如数据包头)。

bytesWritten

一个正整数,表示已成功写入此流的字节数。此数字只能增加。

示例

下面的代码片段使用 await 来等待 getStats() 返回的 Promise。当 Promise fulfilled 时,已发送但未确认的字节数结果会被记录到控制台。

js
const stats = await stream.getStats();
const bytesNotReceived = stats.bytesWritten - stats.bytesAcknowledged;
console.log(`Bytes still successfully sent: ${bytesNotReceived}`);

规范

规范
WebTransport
# dom-webtransportsendstream-getstats

浏览器兼容性