场景:Webrtcpeer1想向Webrtcpeer2发送视频(仅发送数据)。结果发现webrtcpeer2身后是对称NAT,因此直接通信不可行。现在,两个对等方联系一个转换服务器,并获取各自的“传输地址”并将其与其NAT“服务器反射传输地址”作为ICE候选项一起通过信令通道共享。现在,Webrtcpeer3进入场景,希望看到与Webrtcpeer2共享的相同视频源。结果发现webrtcpeer3也处于对称NAT之后。
WebRTC堆栈是否会为webrtcpeer1分配新的“传输地址”以与webrtcpeer3通信?还是webrtcpeer1可以使用连接webrtcpeer2时收到的现有“传输地址”。
答:WebRTC堆栈不需要为webrtcpeer1分配新的“传输地址”,它可以使用连接webrtcpeer2时获得的现有“传输地址”进行通信。
TURN是否支持这种方式?--> webrtcpeer1向转换服务器发送单个视频源(以及webrtcpeer2和3的“传输地址”信息),然后转换服务器以某种神奇的方式将其发送到webrtcpeer2和webrtcpeer3的相应“传输地址”。
答:是的,TURN支持这样的方式。webrtcpeer1可以将视频流发送到TURN服务器,TURN服务器将视频流转发到webrtcpeer2和webrtcpeer3的“传输地址”。