RTCDataChannel: bufferedAmountLowThreshold 属性

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2020 年 1 月⁩ 起,所有主流浏览器均已支持。

RTCDataChannel 属性 bufferedAmountLowThreshold 用于指定被认为是“低”的已缓冲的传出数据的字节数。默认值为 0。当已缓冲的传出字节数(由 bufferedAmount 属性指示)降至或低于此值时,将触发 bufferedamountlow 事件。例如,可以使用此事件来实现代码,以便在有缓冲空间时,始终向缓冲区中添加更多要发送的消息。可以通过 onbufferedamountlowaddEventListener() 添加监听器。

用户代理可以自行选择发送数据的实际方式;这可能是在事件循环期间周期性地完成,也可能是真正异步完成的。随着数据的实际发送,此值将相应减少。

注意: 数据通道关闭后,将不会触发 bufferedamountlow 事件。

传出数据字节数低于此值时,缓冲区将被视为“低”。

示例

在此代码片段中,bufferedAmountLowThreshold 被设置为 64kB,并通过将 onbufferedamountlow 属性设置为一个函数来建立 bufferedamountlow 事件的处理器,该函数应通过调用 send() 来发送更多数据到缓冲区。

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

dc.onbufferedamountlow = () => {
  /* use send() to queue more data to be sent */
};

规范

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

浏览器兼容性

另见