【发布时间】:2016-01-21 15:27:14
【问题描述】:
场景:
我在 iOS 上使用 WebRTC(Google 的 libjingle),PeerConnection 是使用 TURN 服务器设置的,我正在等待所有候选人集合,然后再将它们发送给对等方(我正在使用 SIP)。问题是,虽然所有候选人都在大约 1-3 秒内收集完毕(我可以在日志中看到),但直到大约一分钟后,iceGatheringChanged() 回调才会以状态 GatheringComplete 调用!
知道为什么会这样吗?
在使用 Google 的 AppRTCDemo for iOS 分析流量后,似乎要触发 GatheringComplete,客户端需要已经收到来自远程端的候选人,因为它似乎需要设置 TURN 分配并添加权限在新分配上,以便可以与对等方交换数据。是这样吗?如果有,为什么?
最好的问候
【问题讨论】:
-
这听起来很有趣,所以我尝试在我们的应用程序中检查它。我尝试了 2 种配置:一种带有 TURN 服务器和 2 个 STUN 服务器,另一种没有 TURN,只有 2 个 STUN 服务器。在这两种情况下,到达
iceConnectionState==="completed"都需要 1 分 20 秒。好像是WebRTC库里面超时了,可惜我现在没时间检查。
标签: webrtc sip turn restcomm peer-connection