RTCIceCandidate: protocol 属性
RTCIceCandidate 接口的只读 **protocol** 属性是一个字符串,用于指示候选者是使用 UDP 还是 TCP 作为其传输协议。
protocol 字段的值是从传递给 RTCIceCandidate() 构造函数的 candidateInfo 选项对象设置的。您不能在选项对象中直接指定 protocol 的值,但如果对象的 candidate a-line 格式正确,其值将自动从中提取。
如果未在 SDP 中正确指定,protocol 默认值为 null,但这是一种错误情况,在调用 RTCPeerConnection.addIceCandidate() 时将导致抛出异常。
值
指示候选者使用的网络协议的字符串
tcp-
如果选定,该候选者将使用 TCP 作为其数据的传输协议。
tcpType属性提供了有关该对象所代表的 TCP 候选者种类的额外信息。 udp-
该候选者将使用 UDP 传输协议传输其数据。由于其更好的性能特征,这是媒体交互的首选协议。
注意:如果 protocol 为 null — 并且 protocol 受 用户代理支持 — 将候选者传递给 addIceCandidate() 将失败,并抛出 OperationError 异常。
用法说明
以下是 ICE 事务中的一个示例候选者 a-line
a=candidate:4234997325 1 udp 2043278322 192.0.2.172 44323 typ host
第三个字段 "udp" 是协议类型,表明该候选者将使用 UDP 传输协议。
示例
此代码段检查 protocol 的值,以确定是否应查看 tcpType 的值,以判断它是否为 **simultaneous-open** (S-O) 候选者。
js
if (candidate.protocol === "tcp") {
if (candidate.tcpType === "so") {
adjustForSimultaneousOpen(candidate);
}
}
规范
| 规范 |
|---|
| WebRTC:浏览器中的实时通信 # dom-rtcicecandidate-protocol |
浏览器兼容性
加载中…