我认为规范没有关于最大数据大小的规定。实际上,16 KB 是最大值。请看这篇博客文章,特别是吞吐量/数据包大小图表。这个结果是通过实验得出的,并且是允许webrtc实现之间最兼容的结果。 我曾经在一年前成功地在两个Firefox实例之间发送了多达256 KB(甚至更大)的数据包。自那以后,实现可能已经发生了变化,最大数据大小也随之改变。 如果你想要发送大于16K的数据包,你必须先对它们进行分片。分片必须作为你的应用程序协议的一部分来实现。
sendData:
发送它们。然而,似乎接收方只能接收到一定数量的数据,其余部分永远无法到达。接收到的块数与块大小有关(较小的块,接收到的块数更多),因此我认为它达到了某种缓冲区最大值。我想在发送下一个块之前等待数据通道的bufferedAmount
值变为零,但是这个值似乎总是为 0。 - Andy Hin.match(/.{1,16000}/g)
进行分段,参考了https://dev59.com/AGw05IYBdhLWcg3wxkur#7033662。如果你想发送其他数据,比如块部分编号和块结束编号,那么在16kiB(16384字节)之前会有一些空闲的字节。 - baptx