RTCIceCandidate: relatedAddress 屬性
RTCIceCandidate 介面的只讀屬性 relatedAddress 是一個字串,用於指示中繼或反射候選者的相關地址。
如果候選者是主機候選者(即,其 address 實際上是遠端對等方的真實 IP 地址),則 relatedAddress 為 null。
relatedAddress 欄位的值是從傳遞給 RTCIceCandidate() 建構函式的 candidateInfo 選項物件設定的。您不能在選項物件中直接指定 relatedAddress 的值,但如果其格式正確(rel-address 欄位),其值會自動從物件的 candidate a-line 中提取。
相關地址和埠(relatedPort)根本不被 ICE 本身使用;它們僅用於分析和診斷目的,並且其包含可能被安全系統阻止,因此不要依賴它們具有非 null 值。
值
一個包含候選者相關地址的字串。對於對等反射和伺服器反射候選者,相關地址(和相關埠)是該伺服器或對等反射候選者的基礎。對於中繼候選者,相關地址和埠設定為 TURN 伺服器選擇的對映地址。
對於主機候選者,relatedAddress 為 null,這意味著該欄位未包含在候選者的 a-line 中。
用法說明
相關地址包含在 ICE 候選者中,儘管 ICE 本身不使用它。relatedAddress 可用於診斷目的;透過觀察各種候選者型別與其地址和相關地址之間的關係。relatedAddress 也可由服務質量 (QoS) 機制使用。
這是一個由 STUN 伺服器發現的 ICE 候選者描述的 SDP 屬性行(a-line)。
a=candidate:4234997325 1 udp 2043278322 192.0.2.172 6502 typ srflx raddr 198.51.100.45 rport 32768 generation 0
遠端地址 relatedAddress 是緊跟在文字 "raddr" 後面的點分四段地址(IPv4)或冒號分隔的 64 位地址(IPv6),或者為 "198.51.100.45"。
示例
在此示例中,會檢查候選者的 type,然後根據候選者型別顯示除錯輸出,包括候選者的 ip 和 relatedAddress。
switch (candidate.type) {
case "host":
console.log(`Host candidate's IP address is ${candidate.address}`);
break;
case "srflx":
console.log(
`Server reflexive candidate's base address is ${candidate.relatedAddress}; reachable at ${candidate.address}`,
);
break;
case "prflx":
console.log(
`Peer reflexive candidate's base address is ${candidate.relatedAddress}; reachable at ${candidate.address}`,
);
break;
case "relay":
console.log(
`Relay candidate's address assigned by the TURN server is ${candidate.relatedAddress}; reachable at ${candidate.address}`,
);
break;
}
規範
| 規範 |
|---|
| WebRTC:瀏覽器中的即時通訊 # dom-rtcicecandidate-relatedaddress |
瀏覽器相容性
載入中…