RTCIceCandidate: type 属性

Baseline 2024
新推出

自 2024 年 5 月以来,此功能已在最新设备和浏览器版本中可用。此功能可能不适用于较旧的设备或浏览器。

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

type 字段的值是从传递给 RTCIceCandidate() 构造函数的 candidateInfo 选项对象设置的。您无法在选项对象中直接指定 type 的值,但如果其 candidate a-line(cand-type 字段)格式正确,其值会自动从该对象中提取。

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

主机

该候选者是一个 host 候选者,其中 RTCIceCandidate.address 属性中指定的 IP 地址实际上是远程对等方的真实地址。

srflx

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

prflx

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

relay

该候选者是一个 relay 候选者,从 TURN 服务器获取。relay 候选者的 IP 地址是 TURN 服务器用于在两个对等方之间转发媒体的地址。

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

示例

在此示例中,候选者的 type 用于为 host 候选者(其中 ip 直接指向远程对等方,而不是中介)呈现修改后的用户界面。

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

规范

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

浏览器兼容性

另见