RTCDataChannelStats

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

WebRTC API 的 RTCDataChannelStats 字典提供了与连接上的一个 RTCDataChannel 对象相关的统计信息。

可以通过迭代 RTCPeerConnection.getStats() 返回的 RTCStatsReport 来获取报告,直到找到一个 typedata-channel 的条目。

可以通过将 dataChannelIdentifier 属性与匹配的 RTCDataChannel.id 进行比较,来将数据通道统计信息与特定通道关联起来。

实例属性

bytesSent 可选

一个正整数值,表示在关联的 RTCDataChannel 上发送的总有效载荷字节数。

bytesReceived 可选

一个正整数值,表示在关联的 RTCDataChannel 上接收的总有效载荷字节数。

dataChannelIdentifier 可选

一个正整数值,包含关联 RTCDataChannelid

label 可选

一个字符串,包含关联 RTCDataChannellabel

messagesReceived 可选

一个正整数值,表示在关联 RTCDataChannel 上为收到的消息触发的 message 事件 的总数。

messagesSent 可选

一个正整数值,表示为在该通道上发送的消息触发的 message 事件 的总数。

protocol 可选

一个字符串,包含关联 RTCDataChannelprotocol

state

关联 RTCDataChannelreadyState

常见实例属性

以下属性是所有 WebRTC 统计信息对象共有的(有关更多信息,请参见 RTCStatsReport)。

id

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

时间戳

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

type

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

示例

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

js
const stats = await myPeerConnection.getStats();

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

规范

规范
WebRTC 统计 API 的标识符
# dom-rtcstatstype-data-channel

浏览器兼容性