RTCIceCandidatePairStats
Baseline 广泛可用 *
WebRTC API 的 RTCIceCandidatePairStats 字典用于报告统计信息,这些信息可以深入了解 RTCPeerConnection 在连接时,以及在由指定的 ICE 候选对描述的方式配置时的质量和性能。
可以通过迭代 RTCPeerConnection.getStats() 返回的 RTCStatsReport,直到找到 type 为 "candidate-pair" 的条目来获取统计信息。
实例属性
availableIncomingBitrate可选-
表示网络可用入站容量的数字。这报告了所有候选对的传入 RTP 流每秒可用的总比特数。它不考虑 Internet Protocol (IP) 开销的大小,也不考虑任何其他传输层(例如 TCP 或 UDP)。
availableOutgoingBitrate可选-
表示网络近似可用出站容量的数字。这报告了所有候选对的传出 RTP 流每秒可用的总比特数。它不考虑 IP 开销的大小,也不考虑任何其他传输层(例如 TCP 或 UDP)。
bytesDiscardedOnSend可选 实验性-
一个整数,表示由于此候选对上的套接字错误而丢弃的总字节数。
bytesReceived可选-
一个整数,表示在此候选对上接收到的有效载荷字节总数。
bytesSent可选-
一个整数,表示在此候选对上发送的有效载荷字节总数(不包括任何标头、填充或其他协议开销的发送字节总数)。
consentRequestsSent可选 实验性-
一个整数,表示在此候选对上发送的 STUN 同意请求总数。
currentRoundTripTime可选-
一个数字,表示最近发送的 STUN 请求与收到响应之间经过的总时间(以秒为单位)。这可能基于涉及确认打开连接权限的请求。
lastPacketReceivedTimestamp可选-
一个
DOMHighResTimeStamp值,表示本地对等方从此候选对的远程对等方接收到最后一个数据包的时间。STUN 数据包不记录时间戳。 lastPacketSentTimestamp可选-
一个
DOMHighResTimeStamp值,表示本地对等方将最后一个数据包发送到此候选对的远程对等方的时间。STUN 数据包不记录时间戳。 localCandidateId可选-
一个字符串,表示与
RTCIceCandidate对应的唯一 ID,该数据包含在RTCIceCandidateStats对象中,该对象提供了候选对本地候选的统计信息。 nominated可选-
一个布尔值,如果为
true,则表示此对象描述的候选对已提议使用,如果其优先级在被提名的候选对中最高,则将(或已)使用。有关详细信息,请参见 RFC 5245,第 7.1.3.2.4 节。 packetsDiscardedOnSend可选 实验性-
一个整数,表示由于此候选对上的套接字错误而丢弃的数据包总数。
packetsReceived可选 实验性-
一个整数,表示在此候选对上接收到的数据包总数。
packetsSent可选 实验性-
一个整数,表示在此候选对上发送的数据包总数。
remoteCandidateId可选-
一个字符串,包含一个唯一 ID,对应于用于构造描述连接远程端的
RTCIceCandidateStats对象的远程候选数据。 requestsReceived可选-
一个整数,表示已收到的连接性检查请求总数,包括重传。此值包括连接性检查和 STUN 同意检查。
requestsSent可选-
一个整数,表示已发送的连接性检查请求总数,不包括重传。
responsesReceived可选-
一个整数,表示已收到的连接性检查响应总数。
responsesSent可选-
一个整数,表示已发送的连接性检查响应总数。这包括连接性检查请求和 STUN 同意请求。
state可选-
一个字符串,表示两个候选之间连接的状态。
totalRoundTripTime可选-
一个数字,表示从在此候选对上迄今为止发出的所有 STUN 请求发送到接收响应之间经过的总时间(以秒为单位)。这包括连接性检查和同意检查请求。可以通过将此值除以
responsesReceived来计算平均往返时间 (RTT)。 transportId可选-
一个字符串,唯一标识被检查以获取用于生成此对象的传输相关统计信息(如
RTCTransportStats中所发现)的RTCIceTransport。
常见实例属性
以下属性是所有 WebRTC 统计信息对象共有的。
id-
一个字符串,唯一标识正在监控以生成这组统计信息的对象。
时间戳-
一个
DOMHighResTimeStamp对象,表示此统计信息对象样本的采集时间。 type-
一个值为
"candidate-pair"的字符串,表示对象包含的统计信息类型。
已废弃的属性
以下属性已从规范中删除,不应再使用。您应尽快更新任何现有代码以避免使用它们。查看兼容性表以了解哪些浏览器支持它们以及在哪个版本中。
非标准属性
selected非标准 可选-
一个 Firefox 特有的布尔值,如果此对象描述的候选对是当前正在使用的对,则为
true。确定选定候选对的符合规范的方法是查找类型为transport的统计信息对象,它是一个RTCTransportStats对象。该对象的selectedCandidatePairId属性表示指定的传输是否正在使用。
用法说明
当前活动的 ICE 候选对(如果有)可以通过调用 RTCIceTransport 方法 getSelectedCandidatePair() 来获取,该方法返回一个 RTCIceCandidatePair 对象,如果没有选择的对,则返回 null。活动候选对描述了 RTCPeerConnection 两端的当前配置。
如果 RTCIceTransport 执行 ICE 重启,则任何非活动候选对的候选对都会被删除,此时 ICE 传输的 state 返回 new 并且协商再次开始。有关更多信息,请参见 ICE 重启。
示例
此示例计算连接性检查之间经过的平均时间。
if (rtcStats && rtcStats.type === "candidate-pair") {
let elapsed =
(rtcStats.lastRequestTimestamp - rtcStats.firstRequestTimestamp) /
rtcStats.requestsSent;
console.log(`Average time between ICE connectivity checks: ${elapsed} ms.`);
}
代码首先查看 rtcStats,以查看其 type 是否为 candidate-pair。如果是,则我们知道 rtcStats 实际上是一个 RTCIceCandidatePairStats 对象。然后,我们可以计算 STUN 连接性检查之间经过的平均时间并记录该信息。
规范
| 规范 |
|---|
| WebRTC 统计 API 的标识符 # dom-rtcstatstype-candidate-pair |
浏览器兼容性
加载中…