RTCIceCandidateStats

Baseline 广泛可用 *

此功能已广泛建立,并可在多种设备和浏览器版本中使用。自 ⁨2020 年 2 月⁩ 起,浏览器均已支持该功能。

* 此特性的某些部分可能存在不同级别的支持。

WebRTC API 中的 RTCIceCandidateStats 字典用于报告与 RTCIceCandidate 相关的统计信息。

可以通过迭代 RTCPeerConnection.getStats() 返回的 RTCStatsReport 来获取统计信息,直到找到一个 typelocal-candidate 的报告。

实例属性

address 可选

一个包含候选地址的字符串。该值可能是一个 IPv4 地址、IPv6 地址或完全限定域名。此属性以前命名为 ip,并且只接受 IP 地址。对应于 RTCIceCandidate.address

candidateType

一个字符串,匹配 RTCIceCandidate.type 中的某个值,表示该对象提供的是哪种候选类型的统计信息。

deleted

一个布尔值,指示该候选是否已被删除或释放。

foundation 可选 实验性

一个在多个传输通道中唯一标识该候选的字符串。对应于 RTCIceCandidate.foundation

port 可选

候选使用的网络端口号。对应于 RTCIceCandidate.port

priority 可选

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

protocol 可选

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

relayProtocol

一个字符串,指定本地 ICE 候选用于与 TURN 服务器通信的协议。

transportId

一个字符串,用于唯一标识用于获取与该统计信息对应的候选相关的 RTCTransportStats 的传输对象。

url 可选

一个字符串,指定所描述候选的 ICE 服务器的 URL。此属性适用于本地候选。

usernameFragment 可选 实验性

一个字符串,包含 ICE 用户名片段 ("ice-ufrag")。对应于 RTCIceCandidate.usernameFragment

常见实例属性

以下属性是所有 WebRTC 统计信息对象共有的。

id

一个字符串,唯一标识正在监控以生成这组统计信息的对象。

时间戳

一个 DOMHighResTimeStamp 对象,表示此统计信息对象样本的采集时间。

type

一个值为 "local-candidate" 的字符串,指示该对象包含的统计信息类型。

示例

给定一个变量 myPeerConnection,它是 RTCPeerConnection 的一个实例,下面的代码使用 await 等待统计报告,然后使用 RTCStatsReport.forEach() 进行迭代。然后,它仅过滤出 local-candidate 类型的字典,并打印结果。

js
const stats = await myPeerConnection.getStats();

stats.forEach((report) => {
  if (report.type === "local-candidate") {
    // Log the ICE candidate information
    console.log(report);
  }
});

规范

规范
WebRTC 统计 API 的标识符
# dom-rtcstatstype-local-candidate

浏览器兼容性