RTCIceTransport

Baseline 2024 *
新推出

自 ⁨2024 年 4 月⁩ 起,此功能可在最新的设备和浏览器版本中运行。此功能可能不适用于较旧的设备或浏览器。

* 此特性的某些部分可能存在不同级别的支持。

RTCIceTransport 接口提供了访问数据发送和接收所经过的 ICE 传输层的信息。如果您需要访问连接的状态信息,这将特别有用。

EventTarget RTCIceTransport

实例属性

RTCIceTransport 接口继承了其父接口 EventTarget 的属性。它还提供了以下属性:

component 只读

传输所使用的 ICE 组件。该值是 RTCIceTransport 枚举类型中的一个字符串:"RTP""RTSP"

gatheringState 只读

指示 ICE 代理当前收集状态的字符串:"new""gathering""complete"

role 只读

返回一个字符串,其值为 "controlling""controlled";这表示 ICE 代理是否是最终决定使用哪个候选对的一方。

state 只读

指示 ICE 代理当前状态的字符串。state 的值可用于确定 ICE 代理是否已使用可行的候选对建立初始连接("connected")、已完成候选对的最终选择("completed")或处于错误状态("failed"),以及其他状态。

实例方法

还包括来自父接口 EventTarget 的方法。

getLocalCandidates()

返回一个 RTCIceCandidate 对象数组,每个对象描述了迄今为止为本地设备收集到的 ICE 候选。这些与通过向 RTCPeerConnection 发送 icecandidate 事件以进行传输的候选是相同的。

getLocalParameters()

返回一个 RTCIceParameters 对象,描述了通过调用 RTCPeerConnection.setLocalDescription() 方法建立的 ICE 参数。如果尚未收到参数,则返回 null

getRemoteCandidates()

返回一个 RTCIceCandidate 对象数组,每个对象代表本地 RTCPeerConnection 已接收并调用 addIceCandidate() 将其传递给 ICE 的远程设备的一个 ICE 候选。

getRemoteParameters()

返回一个 RTCIceParameters 对象,其中包含远程设备的 ICE 参数,该参数是通过调用 RTCPeerConnection.setRemoteDescription() 设置的。如果尚未调用 setRemoteDescription(),则返回值是 null

getSelectedCandidatePair()

返回一个 RTCIceCandidatePair 对象,该对象标识迄今为止已选定的两个候选对——每个连接端一个。之后可能找到并选择更好的候选对;如果您需要跟踪这一点,请留意 selectedcandidatepairchange 事件。如果尚未选择任何候选对,则返回值为 null

事件

使用 addEventListener() 监听这些事件,或通过将事件监听器分配给此接口的 oneventname 属性。

gatheringstatechange

发送到 RTCIceTransport 对象,表示 gatheringState 属性的值已更改,表明此传输的 ICE 候选协商过程发生了变化。也可通过 ongatheringstatechange 事件处理程序属性访问。

selectedcandidatepairchange

当已选择一个新的、更好的候选对来描述两个对等点之间的连接性时,发送到 RTCIceTransport。这发生在协商或重新协商期间,包括在 ICE 重启后,ICE 重启会重用现有的 RTCIceTransport 对象。当前候选对可以使用 getSelectedCandidatePair() 获取。也可通过 onselectedcandidatepairchange 事件处理程序属性访问。

statechange

state 属性的值发生更改时,发送到 RTCIceTransport 实例,表明 ICE 收集过程的状态已更改。也可通过 onstatechange 事件处理程序属性访问。

示例

待定

规范

规范
WebRTC:浏览器中的实时通信
# dom-rtcicetransport

浏览器兼容性