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 的浏览器中加载。