跳到主要内容

4.1.20. onicecandidate Event (事件)

4.1.20. onicecandidate Event (事件)

onicecandidate 事件在两种情况下分派给应用程序: (1) 当 ICE 代理在 ICE 收集期间发现新的允许的本地 ICE 候选者时, 如第 3.5.1 节所述, 并受第 3.5.3 节讨论的限制, 或 (2) 当 ICE 收集阶段完成时。该事件包含单个 IceCandidate 对象, 如第 3.5.2.1 节所定义。

在第一种情况下, 新发现的候选者反映在 IceCandidate 对象中, 其所有字段必须非空。此候选者还将根据为 Trickle ICE 定义的规则添加到当前和/或待处理的本地描述。

在第二种情况下, 事件的 IceCandidate 对象必须将其 candidate 字段设置为 null 以指示当前收集阶段已完成, 即在此阶段不会有进一步的 onicecandidate 事件。但是, 必须指定 IceCandidate 的 ufrag 字段以指示哪个 ICE 候选者生成正在结束。可以指定 IceCandidate 的 "m=" 部分索引和 MID 字段以指示事件适用于特定 "m=" 部分, 或将其设置为 null 以指示它适用于当前 ICE 候选者生成中的所有 "m=" 部分。此事件可由应用程序用于生成候选者结束指示, 如 [RFC8838] 第 13 节所定义。