javascript - RTCDataChannel send() 是同步/阻塞调用吗?

标签 javascript webrtc file-transfer rtcdatachannel

我正在尝试通过 WebRTC 分块发送文件,我想知道是否可以创建一个回调函数,以便在 RTCDataChannel.send() 完成发送每个 block 之后调用文件。

RTCDataChannel.send() 是同步/阻塞调用吗?如果是这样,我的回调可以在 .send() 之后的行执行。

如果 .send() 是异步/非阻塞的,那么这会变得很棘手,因为 .send() 似乎不接受回调函数,我想避免使用缓冲区和超时。

最佳答案

send method正在阻塞。然而,它不会等到数据通过网络,而只是将数据放在内部缓冲区中,数据稍后可能会从该缓冲区发送(或与脚本执行并行)。

未传输的数据量可通过 bufferedAmount property 获取。 ,它将通过每次 send() 调用同步增加(并且在下一个事件循环之前不会更新)。

因此,您可以使包装器异步,并在当前缓冲的数据“太多”时(根据您认为合适的标准),在实际调用 send() 之前设置超时。

关于javascript - RTCDataChannel send() 是同步/阻塞调用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24074961/

相关文章:

javascript - 根据 div 位置向上滚动滑动动画

ios - 在 webRTC iOS 中设置视频大小

wcf - 关于使用WCF传输文件的一些问题

java - 如何通过蓝牙通过多部手机传输音乐

java - 使文件传输更高效 Java

javascript - 如何从原始选项卡获取新打开的浏览器选项卡名称?

javascript - 让 child 进入数组

c - Webrtc2sip : error adding symbols: DSO missing from command line

javascript - 延迟、ajax 和排队功能

android - 无法在android上的webrtc中发送视频和音频