RTCIceCandidate: type 属性

RTCIceCandidate 接口的只读 type 指定了对象表示的候选者的类型。

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

一个字符串,其值是下面定义的值之一。这些候选者类型按优先级排序;在列表中越靠前,效率就越高。

host

该候选者是主机候选者,其 IP 地址(如 RTCIceCandidate.address 属性中指定的)实际上是远程对等方的真实地址。

srflx

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

prflx

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

relay

该候选者是中继候选者,从 TURN 服务器获得。中继候选者的 IP 地址是 TURN 服务器用来在两个对等方之间转发媒体的地址。

如果 typenull,则说明该信息在 candidate 的 a 行中缺失,这会导致 RTCPeerConnection.addIceCandidate() 抛出 OperationError 异常。

示例

在本示例中,候选者的 type 用于为主机候选者(那些 ip 直接指向远程对等方而不是中间体的候选者)呈现修改后的用户界面。

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

规范

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

浏览器兼容性

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

另请参阅