使用 TURN 时,状态为“完成”的 WebRTCiceGatheringChanged 需要太长时间才能触发(〜分钟)

ats*_*dis 7 sip webrtc turn peer-connection restcomm

设想:

\n\n

我在 iOS 上使用 WebRTC(Google 的 libjingle),并且使用 TURN 服务器设置 PeerConnection,我正在等待所有候选者聚集,然后再将它们发送给对等点(我使用的是 SIP)。问题是,尽管所有候选者都在大约 1-3 秒内收集完毕(我可以在日志中看到),但直到大约一分钟后,iceGatheringChanged() 回调才会以状态 GatheringComplete 被调用!

\n\n

知道为什么会发生这种情况吗?

\n\n

使用 Google 的 AppRTCDemo for iOS 分析流量后,似乎要触发 GatheringComplete,客户端需要 \xe2\x80\x8b 才能从远程端 \xe2\x80\x8b 接收候选者,因为它似乎需要设置 TURN 分配并在新分配上添加权限,以便可以与对等方交换数据。是这样吗?如果是这样为什么?

\n\n

此致

\n

小智 0

你们正在实时交换双方的候选人吗?你是对的,TURN 客户端要求对方候选人在 TURN 服务器中创建权限,并制作检查列表以启动 ICE 处理。