RTCIceCandidateStats - 提供与 RTCIceCandidate 相关的统计信息

RTCIceCandidateStats 是 WebRTC API 的字典,提供与 RTCIceCandidate 相关的统计信息。

属性

RTCIceCandidateStats 基于 RTCStats 字典,因此除了继承属性外,它还包括以下属性。

address 可选

一个字符串,包含候选者地址。该值可以是 IPv4 地址,IPv6 地址或完全限定的域名。该属性以前被称为 ip,并且仅接受 IP 地址。

candidateType 可选

一个字符串,与 RTCIceCandidateType 枚举类型中的值之一匹配,指示该对象提供哪种统计数据的候选对象。

deleted 可选

一个布尔值,指示该候选对象是否已被释放或删除;默认值为 false。对于本地候选者,如果候选者已被删除或释放,则其值为 true。对于主机候选者,true 表示与候选者关联的任何网络资源(通常是网络套接字)已经被释放。对于 TURN 候选者,TURN 分配对于已删除的候选者不再有效。远程候选者没有此属性。

networkType 可选

一个字符串,表示来自 RTCNetworkType 的枚举类型,指示用于本地候选对象的接口的类型。此属性仅适用于本地候选者。

port 可选

候选者使用的网络端口号。

priority 可选

候选者的优先级,对应于 RTCIceCandidate.priority

protocol 可选

一个字符串,指定用于在 port 上传输数据的协议(tcpudp)。

relayProtocol 可选

一个字符串,用于标识端点用于与 TURN 服务器进行通信的协议;有效值为 tcpudptls。仅针对本地候选者。

transportId 可选

一个字符串,表示要检查的 RTCIceTransport 对象的唯一标识,RTCIceTransport 用于获得与这些统计信息对应的 RTCTransportStats

url 可选

对于本地候选者,url 属性是从中接收候选者的 ICE 服务器的 URL。该 URL 与 RTCPeerConnectionIceEvent 对象中包含的 URL 匹配,该对象表示将候选对象传送到本地对等方的 icecandidate 事件。

实例

此实例具有一个函数 isUsableNetworkType(),其功能是查看 RTCIceCandidateStats 对象的 networkType 并确定网络类型是否为可接受使用。

然后,为类型为 local-candidateRTCStats 对象调用此函数,指示该对象实际上是具有有关本地 ICE 候选者的信息的 RTCIceCandidateStats

const isUsableNetworkType = stats => {
  switch(stats.networkType) {
    case "ethernet":
    case "vpn":
      return true;

    case "bluetooth":
    case "cellular":
    case "wimax":
    case "unknown":
    default:
      return false;
  }
}

if (rtcStats && rtcStats.type === "local-candidate") {
  if (!isUsableNetworkType(rtcStats)) {
    abortConnection();
    return;
  }
}

如果 RTCStats 对象表示有关本地候选者的信息,则该代码调用名为 abortConnection() 的函数,该候选者将使用除以太网或 VPN 以外的网络连接。

规范

规范 状态 备注
Identifiers for WebRTC's Statistics API
RTCIceCandidateStats 的定义
候选推荐 初始定义。

桌面浏览器兼容性

特性ChromeEdgeFirefoxInternet ExplorerOperaSafari
基础支持 不支持 未知27 不支持 未知 未知
address 不支持 未知

65

271

不支持 未知 未知
candidateType 不支持 未知27 不支持 未知 未知
componentId 不支持 未知292 不支持 未知 未知
deleted 不支持 未知 不支持 不支持 未知 未知
networkType 不支持 未知 不支持 不支持 未知 未知
port 不支持 未知273 不支持 未知 未知
priority 不支持 未知 不支持 不支持 未知 未知
protocol 不支持 未知

64

314

不支持 未知 未知
relayProtocol 不支持 未知

64

314

不支持 未知 未知
transportId 不支持 未知315 不支持 未知 未知
url 不支持 未知 不支持 不支持 未知 未知

移动浏览器兼容性

特性AndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
基础支持 不支持 不支持 未知27 未知 未知 未知
address 不支持 不支持 未知

65

271

未知 未知 未知
candidateType 不支持 不支持 未知27 未知 未知 未知
componentId 不支持 不支持 未知292 未知 未知 未知
deleted 不支持 不支持 未知 不支持 未知 未知 未知
networkType 不支持 不支持 未知 不支持 未知 未知 未知
port 不支持 不支持 未知273 未知 未知 未知
priority 不支持 不支持 未知 不支持 未知 未知 未知
protocol 不支持 不支持 未知

64

314

未知 未知 未知
relayProtocol 不支持 不支持 未知

64

314

未知 未知 未知
transportId 不支持 不支持 未知315 未知 未知 未知
url 不支持 不支持 未知 不支持 未知 未知 未知

1. 通过 ipAddress 支持。

2. componentId 是 Firefox 特定的属性,不应在生产代码中使用。

3. 通过 portNumber 支持。

4. 通过 mozLocalTransport 支持。

5. 通过 transport 支持。