--- title: 'RTCPeerConnection: icecandidate event' slug: Web/API/RTCPeerConnection/icecandidate_event translation_of: Web/API/RTCPeerConnection/icecandidate_event original_slug: Web/Events/icecandidate ---

{{SeeCompatTable}}

当 {{domxref("RTCPeerConnection")}}通过{{domxref("RTCPeerConnection.setLocalDescription()")}}方法更改本地描述之后,该{{domxref("RTCPeerConnection")}}会抛出icecandidate事件。该事件的监听器需要将更改后的描述信息传送给远端{{domxref("RTCPeerConnection")}},以更新远端的备选源。

使用指南

icecandidate 的类型为 {{domxref("RTCPeerIceCandidateEvent")}}, 在以下三种情况下会触发该事件:

分享新的源

触发icecandidate事件的首要原因:当获得新的源之后,需要将该源的信息发送给远端信号服务器,并分发至其他端的{{domxref("RTCPeerConnection")}}。其他{{domxref("RTCPeerConnection")}}通过{{domxref("RTCPeerConnection.addIceCandidate", "addIceCandidate()")}}方法将新{{domxref("RTCPeerCandidateIceEvent.candidate", "candidate")}} 中携带的信息,将新的源描述信息添加进它的备选池中;

rtcPeerConnection.onicecandidate = (event) => {
  if (event.candidate) {
    sendCandidateToRemotePeer(event.candidate)
  }
}

概述

规范
{{ SpecName('WebRTC 1.0', '#event-mediastream-icecandidate', 'icecandidate') }}
接口
{{domxref("RTCPeerConnectionIceEvent")}}
事件冒泡
能否取消默认
事件目标
{{domxref("RTCPeerConnection")}}
默认行为

属性

属性继承自{{domxref("RTCPeerConnectionIceEvent")}}.

方法

方法继承自 {{domxref("RTCPeerConnectionIceEvent")}}.

相关事件

规范

规范 状态 注释
{{ SpecName('WebRTC 1.0', '#event-mediastream-icecandidate', 'icecandidate') }} {{Spec2('WebRTC 1.0')}}

兼容性

{{ CompatibilityTable() }}

特性 Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
Basic support {{ CompatVersionUnknown() }} {{CompatVersionUnknown}} {{ CompatVersionUnknown }} {{ CompatNo() }} {{ CompatVersionUnknown() }} {{ CompatUnknown() }}
特性 Android Chrome for Android Edge Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support {{ CompatUnknown() }} {{ CompatUnknown() }} {{CompatVersionUnknown}} {{ CompatUnknown() }} {{ CompatNo() }} {{ CompatUnknown() }} {{ CompatUnknown() }}

参阅