在WebRTC中,当由于流量增加而不得不增加TURN服务器的数量(水平扩展)时,似乎有两种方法可以解决此问题。
无论采用哪种方法,都无法保证同一会议室/组中的所有参与者都将连接到同一TURN服务器。我想知道这还好吗?TURN和客户端之间的通信是否是无状态的,以便对等方可以连接到任何可用的TURN服务器,并且仍然可以进行数据中继?
TURN只是在TURN服务器上打开一个(udp)端口。TURN服务器将解包客户端发送的STUN数据包(STUN发送指示或通道)并将其发送到远程端。远程端可能是另一个TURN服务器,但是TURN服务器不在乎-客户端也不在意。在使用的协议方面,这看起来像这样:
Client --(STUN)-->TURN Server --("raw" udp)-->Another TURN Server--(STUN)-->Second client
Client --(STUN)-->TURN Server --("raw" udp)-->Second client
请注意,两个客户端可能都使用TCP上的TURN与各自的TURN服务器进行通信,但是分配通常通过udp(在webrtc中)进行。
第一种方法较为常见,在将参与者分配到最近的TURN服务器位置的情况下效果更好,如果参与者来自不同的大陆,则该位置可能会有所不同。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句