RTCIceCandidate:candidate 属性

RTCIceCandidate 接口的 candidate 只读属性返回一个详细描述候选者的字符串。RTCIceCandidate 的大多数其他属性实际上都是从这个字符串中提取的。

可以使用传递给 RTCIceCandidate() 构造函数或 RTCPeerConnection.addIceCandidate() 对象的 candidate 属性来配置此属性。

直接从 SDP 属性 "candidate" 中获取的一个描述候选者属性的字符串。候选者字符串指定了候选者的网络连接信息。如果 candidate 是一个空字符串(""),则已经到达了候选列表的末尾;这个候选者被称为 "end-of-candidates"(候选结束)标记。候选者字符串的语法在 RFC 5245, section 15.1 中描述。假设一个属性行内容如下:

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"。其他条件相同时,用户代理将选择具有最高优先级的候选者。在上面的示例中,优先级为 2043278322。每个候选者属性都用单个空格字符分隔,并且按特定顺序排列。此示例候选者的属性完整列表为:

示例

在下面这个例子中,我们看到函数接收一个 ICE 候选者的 SDP 字符串作为参数输入,该字符串是在信令过程中从远程对等端接收到的。

js
function handleNewIceCandidate(candidateSDP) {
  const candidateObj = new RTCIceCandidate(candidateSDP);

  myPeerConnection.addIceCandidate(candidateObj).catch({
    /* 处理 addIceCandidate() 引发的错误 */
  });
}

函数 handleNewIceCandidate() 将接收到的候选者的 SDP 文本传递给 RTCIceCandidate() 构造函数,以获得一个表示该候选者的 RTCIceCandidate 实例。然后将新候选者实例传递给 RTCPeerConnection.addIceCandidate() 方法,将候选者添加到 WebRTC 建立连接时要考虑使用的候选者列表中。

规范

Specification
WebRTC: Real-Time Communication in Browsers
# dom-rtcicecandidate-candidate

浏览器兼容性

BCD tables only load in the browser