【问题标题】:WebRTC iceGatheringChanged with state 'complete' takes far too long to fire when using TURN (~minute)使用 TURN 时,状态为“完成”的 WebRTC iceGatheringChanged 需要很长时间才能触发(~分钟)
【发布时间】: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


【解决方案1】:

你们是在实时交换双方的候选人吗?没错,TURN 客户端要求对方候选人在 TURN 服务器中创建权限,并制作清单以开始 ICE 处理。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-07
    • 2016-07-30
    • 2013-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多