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 |
瀏覽器相容性
載入中…