WebTransportSendStream:getStats() 方法

实验性: 这是一个 实验性技术
在生产环境中使用此功能之前,请仔细查看 浏览器兼容性表

安全上下文:此功能仅在 安全上下文(HTTPS)中可用,在某些或所有 支持的浏览器中可用。

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

getStats() 方法是 WebTransportSendStream 接口的一个方法,它异步返回一个包含当前流统计信息的 Object。

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

语法

js
getStats()

参数

无。

返回值

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

bytesAcknowledged

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

bytesSent

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

bytesWritten

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

示例

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

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

规范

规范
WebTransport
# dom-webtransportsendstream-getstats

浏览器兼容性

BCD 表仅在启用 JavaScript 的浏览器中加载。