RTCDataChannel:bufferedAmount 属性

只读的 RTCDataChannel 属性 bufferedAmount 返回当前排队等待通过数据通道发送的数据的字节数。由于对 send() 方法的调用,队列可能会累积。这仅包括用户代理本身缓冲的数据;它不包括任何帧开销或操作系统或网络硬件执行的缓冲。

用户代理可以以任何它选择的方式实现实际发送数据的过程;这可以在事件循环期间定期执行或真正异步地执行。当消息实际发送时,此值相应减少。

注意:即使用户代理清除了排队的消息,关闭数据通道也不会重置此计数。但是,即使在关闭通道后,尝试发送消息也会继续添加到 bufferedAmount 值,即使消息既未发送也未缓冲。

每当此值减小到低于或等于 bufferedAmountLowThreshold 属性中指定的值时,用户代理就会触发 bufferedamountlow 事件。例如,此事件可用于实现代码,该代码在有空间缓冲消息时将更多消息排队以发送。

当前排队等待通过数据通道发送但尚未发送的数据的字节数。

示例

下面的代码片段包含一个函数,该函数将 ID 为“bufferSize”的块的内容更改为一个字符串,该字符串指示当前在 RTCDataChannel 上缓冲的字节数。

js
const dc = peerConnection.createDataChannel("File Transfer");

// …

function showBufferedAmount(channel) {
  const el = document.getElementById("bufferSize");

  el.innerText = `${channel.bufferedAmount} bytes`;
}

规范

规范
WebRTC:浏览器中的实时通信
# dom-datachannel-bufferedamount

浏览器兼容性

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

另请参阅