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 上传输数据的协议(tcp 或 udp)。
relayProtocol 可选
一个字符串,用于标识端点用于与 TURN 服务器进行通信的协议;有效值为 tcp,udp 和 tls。仅针对本地候选者。
transportId 可选
一个字符串,表示要检查的 RTCIceTransport 对象的唯一标识,RTCIceTransport 用于获得与这些统计信息对应的 RTCTransportStats。
url 可选
对于本地候选者,url 属性是从中接收候选者的 ICE 服务器的 URL。该 URL 与 RTCPeerConnectionIceEvent 对象中包含的 URL 匹配,该对象表示将候选对象传送到本地对等方的 icecandidate 事件。
实例
此实例具有一个函数 isUsableNetworkType(),其功能是查看 RTCIceCandidateStats 对象的 networkType 并确定网络类型是否为可接受使用。
然后,为类型为 local-candidate 的 RTCStats 对象调用此函数,指示该对象实际上是具有有关本地 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 的定义 |
候选推荐 | 初始定义。 |
桌面浏览器兼容性
| 特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|---|
| 基础支持 | 不支持 | 未知 | 27 | 不支持 | 未知 | 未知 |
address | 不支持 | 未知 | 65 271 | 不支持 | 未知 | 未知 |
candidateType | 不支持 | 未知 | 27 | 不支持 | 未知 | 未知 |
componentId | 不支持 | 未知 | 292 | 不支持 | 未知 | 未知 |
deleted | 不支持 | 未知 | 不支持 | 不支持 | 未知 | 未知 |
networkType | 不支持 | 未知 | 不支持 | 不支持 | 未知 | 未知 |
port | 不支持 | 未知 | 273 | 不支持 | 未知 | 未知 |
priority | 不支持 | 未知 | 不支持 | 不支持 | 未知 | 未知 |
protocol | 不支持 | 未知 | 64 314 | 不支持 | 未知 | 未知 |
relayProtocol | 不支持 | 未知 | 64 314 | 不支持 | 未知 | 未知 |
transportId | 不支持 | 未知 | 315 | 不支持 | 未知 | 未知 |
url | 不支持 | 未知 | 不支持 | 不支持 | 未知 | 未知 |
移动浏览器兼容性
| 特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS 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 支持。