我们使用全球 TURN 服务器 (Xirsys) 提供商。当在对等点之间建立连接时,每个对等点首先确定离它们的位置最近的 TURN 服务器,然后获取该服务器的凭据。然后,对等点交换 ICE 候选者,包括它们各自的 TURN 服务器 URL。
如果这些对等点位于不同的区域,他们将提出不同的 TURN 服务器。根据这个问题的公认答案:TURN-Server for RTCConfiguration各个 TURN 服务器将相互连接以中继来自 Peer1 <> TURN1 <> TURN2 <> Peer2 的流。但是,我一直无法让它工作。在客户端中强制 TURN(即没有直接的 p2p 连接),并尝试使用例如美国的 TURN 服务器与巴西的服务器建立 peerConnection,协商总是失败。
这是因为服务器需要没有在 ICE 候选人中传递的凭据吗?或者可能是 Xirsys 特有的问题?还是它实际上应该工作正常而我们做错了什么?