RTCPeerConnection: iceConnectionState 屬性

Baseline 已廣泛支援

此功能已成熟,可跨多種裝置和瀏覽器版本使用。自 2017 年 9 月以來,它已在瀏覽器中提供。

RTCPeerConnection 介面的只讀屬性 iceConnectionState 返回一個字串,表示與 RTCPeerConnection 相關聯的 ICE 代理的狀態:newcheckingconnectedcompletedfaileddisconnectedclosed

它描述了 ICE 代理及其與 ICE 伺服器(即 STUNTURN 伺服器)連線的當前狀態。

您可以透過監聽 iceconnectionstatechange 事件來檢測此值何時發生變化。

ICE 代理及其連線的當前狀態。該值是以下字串之一:

new

ICE 代理正在收集地址,或正在等待透過呼叫 RTCPeerConnection.addIceCandidate()(或兩者)來獲取遠端候選者。

checking

ICE 代理已獲得一個或多個遠端候選者,並正在將本地和遠端候選者對進行比較以嘗試找到相容的匹配項,但尚未找到允許建立對等連線的對。候選者收集工作也可能仍在進行中。

connected

已為連線的所有元件找到可用的本地和遠端候選者對,並且連線已建立。收集工作可能仍在進行中,ICE 代理也可能仍在相互比較候選者,以尋找更好的連線。

completed

ICE 代理已完成候選者收集,已相互比較所有對,併為所有元件找到了連線。

failed

ICE 候選者已相互比較所有候選者對,但未能為連線的所有元件找到相容的匹配項。然而,ICE 代理可能已經為某些元件找到了相容的連線。

disconnected

對於 RTCPeerConnection 的至少一個元件,檢查以確保元件仍然連線失敗。這比 failed 的測試更寬鬆,並且可能在不可靠的網路或臨時斷開連線時間歇性觸發並自發解決。當問題解決時,連線可能會恢復到 connected 狀態。

closed

RTCPeerConnection 的 ICE 代理已關閉,不再處理請求。

示例

js
const pc = new RTCPeerConnection();
const state = pc.iceConnectionState;

規範

規範
WebRTC:瀏覽器中的即時通訊
# dom-peerconnection-ice-connection-state

瀏覽器相容性

另見