RTCIceCandidate: candidate 属性
在 RTCIceCandidate
接口上,只读属性candidate
返回一个字符串,详细描述了候选者。RTCIceCandidate
的大多数其他属性实际上都是从该字符串中提取的。
此属性可以使用传递给 RTCIceCandidate()
构造函数或 RTCPeerConnection.addIceCandidate()
的对象的 candidate
属性进行配置。
值
一个字符串,描述了候选者的属性,直接取自 SDP 属性 "candidate"
。候选者字符串指定了候选者的网络连接信息。如果 candidate
是空字符串(""
),则表示已到达候选者列表的末尾;此候选者称为“候选者结束”标记。
候选者字符串的语法在 RFC 5245,第 15.1 节 中进行了描述。对于如下所示的 a 行(属性行)
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 候选者。
function handleNewIceCandidate(candidateSDP) {
const candidateObj = new RTCIceCandidate(candidateSDP);
myPeerConnection.addIceCandidate(candidateObj).catch({
/* handle the error thrown by addIceCandidate() */
});
}
此处显示的 handleNewIceCandidate()
函数将接收到的候选者的 SDP 文本传递给 RTCIceCandidate()
以获得作为返回值的 RTCIceCandidate
对象,该对象表示候选者。
然后,将新的候选者传递给 RTCPeerConnection.addIceCandidate()
以将候选者添加到 WebRTC 要考虑用于建立连接的候选者列表中。
规范
规范 |
---|
WebRTC:浏览器中的实时通信 # dom-rtcicecandidate-candidate |
浏览器兼容性
BCD 表格仅在浏览器中加载