You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RTCPeerConnection.onIcecandidate() 事件的触发时机是什么?

RTCPeerConnection.onIcecandidate() 三类触发场景验证

RTCPeerConnection.onIcecandidate 事件的核心触发时机是本地ICE代理收集到新的可用网络候选地址时,需要将候选传递给对等端完成ICE协商。你提到的三个场景的触发情况如下:

  • 场景1:将SDP设置为本地SDP时
    该操作本身不会直接触发onIcecandidate事件。调用setLocalDescription成功后会启动ICE候选收集流程,后续每收集到一个可用候选,就会触发一次onIcecandidate事件;所有候选收集完成时,还会额外触发一次event.candidate为null的事件,标志本次收集结束。
  • 场景2:将应答设置为remoteDescription时
    常规场景下该操作不会触发onIcecandidate事件。仅当传入的远端应答SDP携带ICE重启标识(即ice-ufrag、ice-pwd字段和此前协商的值不一致),触发了ICE重启流程时,才会重新启动本地候选收集,进而触发onIcecandidate事件。
  • 场景3:任意数据或媒体流被添加到RTCPeerConnection时
    该操作本身不会直接触发onIcecandidate事件。添加媒体流、媒体轨道或者RTCDataChannel只会修改本地会话的协商要求,需要你后续主动发起SDP重协商(调用createOffer/createAnswer生成新SDP,再执行setLocalDescription)后,才会启动ICE候选收集流程,进而触发对应事件。

内容的提问来源于stack exchange,提问作者user3519714

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 00:09:02