Trickle ICE - 选择候选人
Trickle ICE - choose candidate
在WebRTC中,ICE候选项是如何选择和使用的?如果添加了新的候选人,将使用它,如果是,什么时候?
需要使用信令将新收集的候选者通告到另一端,然后它将与两端的远程候选者配对并重新启动新对的 ICE 处理。如果任何一对获得成功并且 ICE 设置的优先级值高于现有的 selected 候选者,则提供者端将 select 这个新对作为受欢迎的和 selected 候选者并开始使用这对新的 selected 候选人。有时可能需要通过信令使用 selected 候选人发送更新的报价。
发送更新的 offer/answer 取决于客户端或 ICE 实现的设计或实现。基本上,对于与初始 offer/answer 中的 ICE 属性相关的任何更改,都需要更新报价。根据 RFC,当 ICE 候选人被 selected 时,提议者端应将 "a=remote-candidates" 包含在 selected 候选人中,并交换更新后的 offer/answer。如果客户没有明确要求更新的报价作为远程候选人的指示,那么不发送任何更新的报价就可以了,您可以尝试不发送它,看看会发生什么。如果您始终发送更新的报价,并且其他客户端可以解析并识别属性,这应该是无害的。
在 FF 或 Chrome WebRTC (Trickle ICE) 的浏览器默认实现中,您无需担心更新的候选者,因为当 ICE 候选者可用于检索时,客户端将收到事件,因此您只会检索它并发送到另一端。对于重新邀请的情况,一旦 ICE 状态进入 Controlling (Offerer) 端的 "completed" 状态,就调用 createOffer。
在WebRTC中,ICE候选项是如何选择和使用的?如果添加了新的候选人,将使用它,如果是,什么时候?
需要使用信令将新收集的候选者通告到另一端,然后它将与两端的远程候选者配对并重新启动新对的 ICE 处理。如果任何一对获得成功并且 ICE 设置的优先级值高于现有的 selected 候选者,则提供者端将 select 这个新对作为受欢迎的和 selected 候选者并开始使用这对新的 selected 候选人。有时可能需要通过信令使用 selected 候选人发送更新的报价。
发送更新的 offer/answer 取决于客户端或 ICE 实现的设计或实现。基本上,对于与初始 offer/answer 中的 ICE 属性相关的任何更改,都需要更新报价。根据 RFC,当 ICE 候选人被 selected 时,提议者端应将 "a=remote-candidates" 包含在 selected 候选人中,并交换更新后的 offer/answer。如果客户没有明确要求更新的报价作为远程候选人的指示,那么不发送任何更新的报价就可以了,您可以尝试不发送它,看看会发生什么。如果您始终发送更新的报价,并且其他客户端可以解析并识别属性,这应该是无害的。
在 FF 或 Chrome WebRTC (Trickle ICE) 的浏览器默认实现中,您无需担心更新的候选者,因为当 ICE 候选者可用于检索时,客户端将收到事件,因此您只会检索它并发送到另一端。对于重新邀请的情况,一旦 ICE 状态进入 Controlling (Offerer) 端的 "completed" 状态,就调用 createOffer。