常见问题

常见问题 #

为什么WebRTC使用UDP?

NAT穿透需要UDP。没有NAT穿透,就无法建立P2P连接。UDP不像TCP那样"保证送达”,因此WebRTC在用户级别提供这一特性。

要了解更多信息,请参考 连接 章节。

数据通道最多可以有几个?
因为流标识符有16位,所以最多有65536个通道。您可以随时关闭再创建一个新的。
WebRTC是否有带宽限制?
数据通道和RTP都使用拥塞控制。这意味着WebRTC会主动测量您的带宽并尝试使用最佳数值。这是一种平衡措施,这样可以尽量发送数据,而不会使网络连接过载。
我可以发送二进制数据吗?
是的,您可以通过数据通道发送文本和二进制数据。
WebRTC延迟怎么样?

对于未作调整的媒体,估计不到500毫秒。如果您愿意为延迟调整或牺牲音质/画质,有开发人员将延迟降到了100ms以下。

数据通道支持"部分可靠性"选项,该选项可以减少由于有损连接上的数据重传而引起的延迟。如果配置正确的话,速度可以超过TCP TLS连接。

什么情况下我会需要无序交付的数据通道?
有时,新的信息会淘汰旧的信息(例如对象的位置信息);或者,每个消息都是彼此独立的,并且您需要避免行头阻塞延迟。
我可以通过数据通道发送音频或视频吗?
您可以通过数据通道发送任何数据。如果是在浏览器中这样使用,您就需要自行对数据进行解码,然后将其传递给媒体播放器进行渲染;在使用媒体通道时,这部分是自动完成的。