RTCIceCandidate:foundation 属性

Baseline 2024
新推出

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

RTCIceCandidate 接口中只读的 foundation 属性是一个字符串,它允许在多个 RTCIceTransport 对象之间关联来自同一网络路径的候选者。

当候选者具有相同的 foundation 时,它们

  • 具有相同的类型:“host”、“relayed”、“server reflexive”或“peer reflexive”。
  • 具有相同的“bases”,这些“bases”共享相同的 IP 地址和传输协议,但不一定共享相同的端口。请注意,IP 地址是 ICE 代理发送该候选者的网络接口的 IP 地址。
  • 它们来自具有相同 IP 地址的 STUN 或 TURN 服务器。

这用于帮助优化 ICE 性能,同时优先排序和关联出现在多个 RTCIceTransport 对象上的候选者。

一个字符串,唯一标识在所有可用的 RTCIceTransport 对象上的候选者。

注意:如果 portnull — 并且 portuser agent 支持 — 则将该候选者传递给 addIceCandidate() 会失败,并抛出 OperationError 异常。

用法说明

考虑这个描述 ICE 候选的 SDP 属性行(a-line):

a=candidate:4234997325 1 udp 2043278322 192.0.2.172 44323 typ host

字段 "4234997325" 就是 foundation。

示例

此代码段使用两个候选者的 foundation 来确定它们是否实际上是同一个候选者。

js
if (candidate1.foundation === candidate2.foundation) {
  /* the two candidates are the same, even if they're on
     different transports */
}

规范

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

浏览器兼容性