RTCDataChannelStats
RTCDataChannelStats
是 WebRTC API 中的一个字典,它提供了与连接上一个 RTCDataChannel
对象相关的统计信息。
可以通过迭代 RTCStatsReport
(由 RTCPeerConnection.getStats()
返回)来获取报表,直到找到 type
为 data-channel
的条目。
可以通过将 dataChannelIdentifier
属性与匹配的 RTCDataChannel.id
进行比较,将数据通道统计信息与特定通道相关联。
实例属性
bytesSent
可选-
一个正整数,表示通过关联的
RTCDataChannel
发送的有效负载字节总数。 bytesReceived
可选-
一个正整数,表示通过关联的
RTCDataChannel
接收的有效负载字节总数。 dataChannelIdentifier
可选-
一个正整数,包含关联的
RTCDataChannel
的id
。 label
可选-
一个字符串,包含关联的
RTCDataChannel
的label
。 messagesReceived
可选-
一个正整数,表示通过关联的
RTCDataChannel
接收的消息触发的message
事件 的总数。 messagesSent
可选-
一个正整数,表示通过通道发送的消息触发的
message
事件 的总数。 protocol
可选-
一个字符串,包含关联的
RTCDataChannel
的protocol
。 state
-
关联的
RTCDataChannel
的readyState
。
通用实例属性
以下属性是所有 WebRTC 统计信息对象共有的(有关更多信息,请参见 RTCStatsReport
)。
id
-
一个唯一标识正在监控以生成此组统计信息的对象的字符串。
timestamp
-
一个
DOMHighResTimeStamp
对象,表示为该统计信息对象获取样本的时间。 type
-
一个值为
"data-channel"
的字符串,表示对象包含的统计信息类型。
示例
假设有一个名为 myPeerConnection
的变量,它是 RTCPeerConnection
的一个实例,下面的代码使用 await
来等待统计信息报表,然后使用 RTCStatsReport.forEach()
进行迭代。然后它过滤字典,只保留 type
为 data-channel
的报表,并将结果记录下来。
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 |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。