RTCPeerConnectionStats
WebRTC API 中的 RTCPeerConnectionStats 字典提供了關於高階 RTCPeerConnection 的資訊。
具體來說,它提供了已開啟的唯一資料通道的數量,以及已關閉的通道數量。這使得可以計算出當前開啟的通道數量。
可以透過迭代 RTCPeerConnection.getStats() 返回的 RTCStatsReport 來獲取這些統計資訊,直到找到一個 type 為 peer-connection 的報告。
例項屬性
dataChannelsOpened-
一個正整數值,表示在其生命週期中進入
open狀態的唯一RTCDataChannel物件的數量。 dataChannelsClosed-
一個正整數值,表示在其生命週期中離開
open狀態的唯一RTCDataChannel物件的數量(未經open狀態就轉換到closing或closed狀態的通道不計入此數量)。如果連線的任一端或底層傳輸關閉,通道將離開open狀態。
常見例項屬性
以下屬性是所有 WebRTC 統計資訊物件共有的。
id-
一個字串,唯一標識正在監控以生成這組統計資訊的物件。
時間戳-
一個
DOMHighResTimeStamp物件,表示此統計資訊物件樣本的採集時間。 type-
一個值為
"peer-connection"的字串,表示物件包含的統計資訊的型別。
示例
此示例展示了一個函式,用於返回開啟的連線總數,如果未提供統計資訊,則返回 null。此函式可能會在迴圈中呼叫,類似於 RTCPeerConnection.getStats() 示例 中的方法。
該函式等待對 RTCPeerConnection.getStats() 的呼叫結果,然後迭代返回的 RTCStatsReport 以僅獲取型別為 "peer-connection" 的統計資訊。然後,它使用報告中的資料返回開啟的通道總數,或者返回 null。
async function numberOpenConnections (peerConnection) {
const stats = await peerConnection.getStats();
let peerConnectionStats = null;
stats.forEach((report) => {
if (report.type === "peer-connection") {
peerConnectionStats = report;
break;
}
});
result = (typeof peerConnectionStats.dataChannelsOpened === 'undefined' || typeof peerConnectionStats.dataChannelsClosed=== 'undefined') ? null : peerConnectionStats.dataChannelsOpened - peerConnectionStats.dataChannelsClosed;
return result
}
規範
| 規範 |
|---|
| WebRTC 統計 API 的識別符號 # dom-rtcstatstype-peer-connection |
瀏覽器相容性
載入中…