RTCIceCandidate:type 属性

RTCIceCandidate 接口的 type 只读属性指定当前对象代表的候选者的类型。

type 字段的值是从传递给 RTCIceCandidate(candidateInfo) 构造函数的 candidateInfo 选项对象中设置的。你不能直接在选项对象中指定 type 的值,如果对象的 candidate 属性行(cand-type 字段)格式正确,其值将自动从中提取。

一个字符串,其值为以下定义之一。这些候选者类型按优先级顺序列出;它们在列表中的位置越高,则其效率越高。

host

主机候选者;其 RTCIceCandidate.address 属性中指定的 IP 地址是真实的远程对等端的地址。

srflx

服务器反射候选者;ip 和端口是由 NAT 为一个代理分配绑定的,当代理通过 NAT 向服务器发送数据包时。它们可以被 STUN 服务器和 TURN 服务器学习,以匿名表示候选者的对等端。

prflx

对等端反射候选;ip 和端口是 NAT 发送 STUN 请求时分配的绑定,以匿名表示候选者的对等端。

relay

中继候选者;中继候选者的 IP 地址是 TURN 服务器用于在两个对等方之间转发媒体的地址。

在调用 RTCPeerConnection.addIceCandidate() 时,如果 typenull,则 candidate 的属性行中缺少该信息,将会抛出 OperationError 异常。

示例

在此示例中,候选者的 type 用于为主机候选者(其中 ip 直接指向远程对等端而不是中间人的情况)呈现修改后的用户界面。

js
if (candidate.type === "host") {
  showHostControls();
} else {
  hideHostControls();
}

规范

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

浏览器兼容性

BCD tables only load in the browser

参见