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

浏览器兼容性

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
type

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

参见