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 候选者。

js
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 表格仅在浏览器中加载