RTCIceCandidate:protocol 属性

RTCIceCandidate 接口的只读 protocol 属性是一个字符串,指示候选者是否使用 UDPTCP 作为其传输协议。

protocol 字段的值是从传递给 RTCIceCandidate() 构造函数的 candidateInfo 选项对象中设置的。您不能在选项对象中直接指定 protocol 的值,但如果格式正确,则会从对象的 candidate a 行自动提取其值。

如果在 SDP 中未正确指定,则 protocol 默认情况下为 null,但这是一个错误条件,当您调用 RTCPeerConnection.addIceCandidate() 时会导致抛出异常。

价值

指示候选者使用什么网络协议的字符串

tcp

如果选择该候选者,它将使用 TCP 作为其数据的传输协议。tcpType 属性提供了有关对象表示的 TCP 候选者类型的其他信息。

udp

候选者将使用 UDP 传输协议传输其数据。由于其更好的性能特征,这是媒体交互的首选协议。

注意:如果 protocolnull(并且 protocol用户代理 支持),则将候选者传递给 addIceCandidate() 将失败,并抛出 OperationError 异常。

使用说明

这是一个来自 ICE 事务的候选者 a 行示例

a=candidate:4234997325 1 udp 2043278322 192.0.2.172 44323 typ host

第三个字段 "udp" 是协议类型,指示候选者将使用 UDP 传输协议。

示例

此代码片段检查 protocol 的值,以确定是否应查看 tcpType 的值,以查看它是否为 同时打开S-O)候选者。

js
if (candidate.protocol === "tcp") {
  if (candidate.tcpType === "so") {
    adjustForSimultaneousOpen(candidate);
  }
}

规范

规范
WebRTC:浏览器中的实时通信
# dom-rtcicecandidate-protocol

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。