Javascript RTCDataChannel send()是否为同步/阻塞调用?

Javascript RTCDataChannel send()是否为同步/阻塞调用?,javascript,webrtc,file-transfer,rtcdatachannel,Javascript,Webrtc,File Transfer,Rtcdatachannel,我试图通过WebRTC发送一个分块的文件,我想知道是否可以创建一个回调函数,在RTCDataChannel.send()完成发送文件的每个块后调用 RTCDataChannel.send()是同步/阻塞调用吗?如果是这样,我的回调可以在.send()之后的行上执行 如果.send()是异步/非阻塞的,那么这将变得棘手,因为它看起来不像。send()接受回调函数,我希望避免使用缓冲区和超时。正在阻塞。但是,它不会等到数据通过连接,而是将数据放在一个内部缓冲区中,稍后可能会从该缓冲区(或与脚本执行并

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

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

如果
.send()
是异步/非阻塞的,那么这将变得棘手,因为它看起来不像
。send()
接受回调函数,我希望避免使用缓冲区和超时。

正在阻塞。但是,它不会等到数据通过连接,而是将数据放在一个内部缓冲区中,稍后可能会从该缓冲区(或与脚本执行并行)发送数据

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

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

正在阻塞。但是,它不会等到数据通过连接,而是将数据放在一个内部缓冲区中,稍后可能会从该缓冲区(或与脚本执行并行)发送数据

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

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

如上所述,send()实际上是异步的-您不会收到送达回执。 但是,有一个回调
onbufferedamountlow
,当 通道将其发送缓冲区消耗到使用
bufferedAmountLowThreshold
(见附件)

您可以使用该回调来决定何时发送下一个块

但是,请注意,这对于标准草案来说是相对较新的,并且可能不在任何地方都支持。

如上所述,send()实际上是异步的-您不会收到交付收据。 但是,有一个回调
onbufferedamountlow
,当 通道将其发送缓冲区消耗到使用
bufferedAmountLowThreshold
(见附件)

您可以使用该回调来决定何时发送下一个块


但是请注意,这对于标准草案来说是相对较新的,可能并不在任何地方都支持。

如果是同步的,则不需要回调?嗯。。。我有一个关于
.send()
的抽象,所以我必须将回调传递给我定义的调用
.send()
的函数。如果它是同步的,您不需要回调?嗯。。。我有一个关于
.send()
的抽象,所以我必须将回调传递给我定义的调用
.send()
的函数,谢谢Bergi!很高兴知道
.send()
正在阻塞,很高兴知道
bufferedAmount
存在。听起来我必须在bufferedAmount上进行轮询,并等待它“足够小”谢谢Bergi!很高兴知道
.send()
正在阻塞,很高兴知道
bufferedAmount
存在。听起来我必须对bufferedAmount进行轮询,直到它“足够小”