我正在尝试WebRTC,并想从连接方面进一步了解TURN服务器的工作方式。
因为我尝试过即使具有相同电信公司的移动设备,它们也无法直接相互连接。需要TURN服务器来中继消息。
假设一个房间有4位玩家A,B,C,D,并且所有玩家都无法直接相互连接。那么对于TURN服务器,那里有多少个连接?
a)6 b)12 或更多?
在同位方向其他同位方广播的情况下,TURN服务器将接收并转发多少消息?
答案 0 :(得分:1)
将有 n×(n-1)个连接。每个对等方都向其他所有对等方发送流。对于两个对等点,每个对等点一个流,总共两个流。对于四个对等方,每个对等方三个流,总共12个流。
假设没有任何对等方可以直接连接,则都必须通过TURN服务器进行路由。
TURN服务器是“哑”中继,它仅按原样中继流,并将所有逻辑和流处理留给客户端。因此,每个客户端都必须分别编码三个不同的流,才能发送给三个不同的对等端。
要获得更高的效率,您需要像流行的Kurento这样的媒体服务器,该媒体服务器可以采用一个流并将其重新分发(“广播”)到多个单独的客户端。即它承担逻辑和流处理任务。与TURN相比,这需要更复杂的设置和更强大的服务器。在实践中,您可能需要为此支付SaaS提供商的费用,而不是自行建立。