本系列文章跳转目录如下:
- 是什么,为什么,如何使用
- 信令(交换信令消息后,WebRTC Agent才可以直接相互通信。)
- 连接( 为什么WebRTC需要专用的子系统进行连接,又是怎样连接的?)
- 安全性( WebRTC具有哪些安全性保障,又是如何做到的?)
- 搭建实时网络(网络在实时通信中的重要性以及如何处理网络中的各种问题)
- 媒体通信(WebRTC媒体通信的作用及其工作原理)
- 数据通信(WebRTC数据通信的作用及其工作原理)
- WebRTC应用场景(人们使用WebRTC构建什么以及他们是如何实现的)
- 调试(如何分析并定位相关问题,以及一些流行的调试工具)
- 历史(对WebRTC一系列协议作者的采访)
- 常见问题( 使用WebRTC时常见的问题及解答)
- 术语
常见问题
为什么WebRTC使用UDP?
NAT穿透需要UDP。没有NAT穿透,就无法建立P2P连接。UDP不像TCP那样"保证送达",因此WebRTC在用户级别提供这一特性。
要了解更多信息,请参考 此篇文章。
数据通道最多可以有几个?
因为流标识符有16位,所以最多有65534个通道。你可以随时关闭再创建一个新的。
WebRTC是否有带宽限制?
数据通道和RTP都使用拥塞控制。这意味着WebRTC会主动测量你的带宽并尝试使用最佳数值。这是一种平衡措施,这样可以尽量发送数据,而不会使网络连接过载。
我可以发送二进制数据吗?
是的,你可以通过数据通道发送文本和二进制数据。
WebRTC延迟怎么样?
对于未作调整的媒体,估计不到500毫秒。如果你愿意为延迟调整或牺牲音质/画质,有开发人员将延迟降到了100ms以下。
数据通道支持"部分可靠性"选项,该选项可以减少由于有损连接上的数据重传而引起的延迟。如果配置正确的话,速度可以超过TCP TLS连接。
什么情况下我会需要无序交付的数据通道?
有时,新的信息会淘汰旧的信息(例如对象的位置信息);或者,每个消息都是彼此独立的,并且你需要避免行头阻塞延迟。
我可以通过数据通道发送音频或视频吗?
是的,你可以通过数据通道发送任何数据。如果是在浏览器中这样使用,你就需要自行对数据进行解码,然后将其传递给媒体播放器进行渲染;在使用媒体通道时,这部分是自动完成的。
您好,想请教一下,我在Android端实现了webrtc datachannel 创建和收发消息,但是在发送大文件方面发现大于65664byte的数据会丢包,请问有什么方法可以扩大datachannel收发的缓存区吗,谢谢。