信令服务器是否仅在第一次使用时在2个对等体之间建立连接,还是用于在对等体之间发送和接收数据流?
答案 0 :(得分:3)
根据w3c proposal:
RTCPeerConnection允许两个用户直接通信,浏览器到浏览器。通过信令信道协调通信,信令信道由未指定的装置提供,但通常由页面中的脚本通过服务器提供,例如通过服务器提供。使用XMLHttpRequest。
因此,服务器仅用于信号不用于数据传输。但信令不仅限于建立第一个连接。信令信道还用于传输错误消息,元数据,如编解码器,编解码器设置,网络数据和密钥,以便安全传输。
答案 1 :(得分:2)
这取决于网络配置。
如果至少有一个对等体不在NAT防火墙后面,则直接在互联网上的对等体充当服务器,并且在建立连接后不再使用信令服务器。
如果两个对等体都在NAT设备后面,在某些情况下可能会在对等体之间建立客户端服务器连接,并且数据再次直接在两个对等体之间发送。
如果两个对等体都在被锁定的NAT防火墙后面,则对等体之间的所有流量都通过信令服务器。
另请注意,在前两种情况下,使用STUN服务器建立连接。如果通过服务器中继完整数据,则使用TURN服务器。
在article an video on html5rocks中查看一个很好的解释。他们声称只有大约14%的连接需要TURN,这对我来说似乎是一个非常低的数字(这相当于只有37%的客户端在锁定的NAT路由器后面)。