WebRTC是否允许实际的点对点通信?

时间:2014-08-11 05:58:24

标签: webrtc

信令服务器是否仅在第一次使用时在2个对等体之间建立连接,还是用于在对等体之间发送和接收数据流?

2 个答案:

答案 0 :(得分:3)

根据w3c proposal

  

RTCPeerConnection允许两个用户直接通信,浏览器到浏览器。通过信令信道协调通信,信令信道由未指定的装置提供,但通常由页面中的脚本通过服务器提供,例如通过服务器提供。使用XMLHttpRequest。

因此,服务器仅用于信号不用于数据传输。但信令不仅限于建立第一个连接。信令信道还用于传输错误消息,元数据,如编解码器,编解码器设置,网络数据和密钥,以便安全传输。

答案 1 :(得分:2)

这取决于网络配置。

如果至少有一个对等体不在NAT防火墙后面,则直接在互联网上的对等体充当服务器,并且在建立连接后不再使用信令服务器。

如果两个对等体都在NAT设备后面,在某些情况下可能会在对等体之间建立客户端服务器连接,并且数据再次直接在两个对等体之间发送。

如果两个对等体都在被锁定的NAT防火墙后面,则对等体之间的所有流量都通过信令服务器。

另请注意,在前两种情况下,使用STUN服务器建立连接。如果通过服务器中继完整数据,则使用TURN服务器。

article an video on html5rocks中查看一个很好的解释。他们声称只有大约14%的连接需要TURN,这对我来说似乎是一个非常低的数字(这相当于只有37%的客户端在锁定的NAT路由器后面)。