RTCIceCandidate: candidate 屬性
RTCIceCandidate 介面上只讀的 candidate 屬性會返回一個詳細描述該 candidate 的字串。RTCIceCandidate 的其他大部分屬性實際上是從這個字串中提取出來的。
可以透過傳遞給 RTCIceCandidate() 建構函式的物件的 candidate 屬性,或者傳遞給 RTCPeerConnection.addIceCandidate() 方法的物件中的 candidate 屬性來配置此屬性。
值
一個描述 candidate 屬性的字串,直接取自 SDP 屬性 "candidate"。candidate 字串指定了 candidate 的網路連線資訊。如果 candidate 是一個空字串 (""),則表示已到達 candidate 列表的末尾;這個 candidate 被稱為“結束標記”。
候選字串的語法在 RFC 5245, section 15.1 中進行了描述。對於如下 a-line (屬性行):
a=candidate:4234997325 1 udp 2043278322 192.0.2.172 44323 typ host
相應的 candidate 字串的值將是:"candidate:4234997325 1 udp 2043278322 192.0.2.172 44323 typ host"。
在所有條件都相同的情況下,使用者代理總是優先選擇具有最高 priority 的候選。在上面的示例中,優先順序是 2043278322。屬性之間都用單個空格字元分隔,並且順序是固定的。此示例候選的完整屬性列表是:
示例
在此示例中,我們看到一個函式,它接收一個 SDP 字串作為輸入,該字串包含在信令過程中從遠端對等方收到的 ICE candidate。
function handleNewIceCandidate(candidateSDP) {
const candidateObj = new RTCIceCandidate(candidateSDP);
myPeerConnection.addIceCandidate(candidateObj).catch({
/* handle the error thrown by addIceCandidate() */
});
}
此處顯示的 handleNewIceCandidate() 函式會將收到的 candidate 的 SDP 文字傳遞給 RTCIceCandidate(),以返回一個 RTCIceCandidate 物件,該物件代表了該 candidate。
然後將新的 candidate 傳遞給 RTCPeerConnection.addIceCandidate(),以便將 candidate 新增到 WebRTC 將要用於建立連線的 candidate 列表中。
規範
| 規範 |
|---|
| WebRTC:瀏覽器中的即時通訊 # dom-rtcicecandidate-candidate |
瀏覽器相容性
載入中…