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
支持。