RTCIceCandidate: type 屬性

Baseline 2024
新推出

自 2024 年 5 月以來,此功能已在最新裝置和瀏覽器版本中可用。此功能可能不適用於較舊的裝置或瀏覽器。

RTCIceCandidate 介面的只讀 **type 屬性指定了該物件代表的候選者型別。

type 欄位的值是從傳遞給 RTCIceCandidate() 建構函式的 candidateInfo 選項物件設定的。您無法在選項物件中直接指定 type 的值,但如果其 candidate a-line(cand-type 欄位)格式正確,其值會自動從該物件中提取。

一個字串,其值是下面定義的其中一個。這些候選者型別按優先順序排序;列表中越靠前,效率越高。

主機

該候選者是一個 host 候選者,其中 RTCIceCandidate.address 屬性中指定的 IP 地址實際上是遠端對等方的真實地址。

srflx

該候選者是一個 server reflexive 候選者;ip 和埠是由 NAT 分配的繫結,當一個代理透過 NAT 向伺服器傳送資料包時使用。它們可以由 STUN 伺服器和 TURN 伺服器學習,以匿名地表示候選者的對等方。

prflx

該候選者是一個 peer reflexive 候選者;ip 和埠是由 NAT 在傳送 STUN 請求以匿名地表示候選者的對等方時分配的繫結。

relay

該候選者是一個 relay 候選者,從 TURN 伺服器獲取。relay 候選者的 IP 地址是 TURN 伺服器用於在兩個對等方之間轉發媒體的地址。

如果 typenull,則該資訊在 candidate 的 a-line 中缺失,這將導致 RTCPeerConnection.addIceCandidate() 丟擲 OperationError 異常。

示例

在此示例中,候選者的 type 用於為 host 候選者(其中 ip 直接指向遠端對等方,而不是中介)呈現修改後的使用者介面。

js
if (candidate.type === "host") {
  showHostControls();
} else {
  hideHostControls();
}

規範

規範
WebRTC:瀏覽器中的即時通訊
# dom-rtcicecandidate-type

瀏覽器相容性

另見