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