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

瀏覽器相容性