RTCTransportStats
WebRTC API 中的 RTCTransportStats 字典提供了有關特定候選對使用的傳輸 (RTCDtlsTransport 及其底層 RTCIceTransport) 的資訊。
BUNDLE 功能是 SDP 的一個擴充套件,它允許協商使用單個傳輸來發送和接收由多個 SDP 媒體描述所定義的媒體。如果遠端端點已知此功能,則在協商完成後,所有 MediaStreamTrack 和資料通道都會被捆綁到單個傳輸上。這對於當前瀏覽器是成立的,但如果連線到不支援 BUNDLE 的舊端點,則可能為不同媒體使用單獨的傳輸。協商中使用的策略是在 RTCPeerConnection 建構函式 中配置的。
可以透過迭代 RTCPeerConnection.getStats() 返回的 RTCStatsReport 來獲取這些統計資訊,直到找到一個 type 為 transport 的報告。
例項屬性
bytesReceived可選-
此傳輸上接收到的總有效載荷位元組數(接收的位元組數,不包括標頭、填充或 ICE 連線檢查)。
bytesSent可選-
此傳輸上傳送的總有效載荷位元組數(傳送的位元組數,不包括標頭、填充或 ICE 連線檢查)。
dtlsCipher可選-
一個字串,指示用於 DTLS 傳輸的密碼套件的名稱,例如
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256。 dtlsRole可選 實驗性-
一個字串,指示關聯的
RTCPeerConnection的 DTLS 角色。其值可以是:client、server、unknown(在 DTLS 協商開始之前)。 dtlsState-
一個字串,指示底層
state的RTCDtlsTransport的當前狀態。其值可以是:new、connecting、connected、closed、failed。 iceLocalUsernameFragment可選 實驗性-
一個字串,指示此傳輸管理的 ICE 互動會話的本地使用者名稱片段。該片段唯一地標識了該會話。
iceRole可選 實驗性-
一個字串,指示底層
RTCIceTransport的 ICErole。其值可以是:controlled、controlling或unknown。 iceState可選 實驗性-
一個字串,指示底層
RTCIceTransport的當前state。其值可以是:new、checking、connected、completed、disconnected、failed或closed。 localCertificateId可選-
一個字串,包含此傳輸使用的本地證書的 ID。僅對 DTLS 傳輸有效,並且在 DTLS 協商完成後才存在。
packetsReceived可選 實驗性-
此傳輸上接收到的總資料包數。
packetsSent可選 實驗性-
此傳輸上傳送的總資料包數。
remoteCertificateId可選-
一個字串,包含此傳輸使用的遠端證書的 ID。僅對 DTLS 傳輸有效,並且在 DTLS 協商完成後才存在。
selectedCandidatePairChanges可選-
此傳輸所選候選對更改的次數。該值初始為零,每當選定或丟失候選對時增加。
selectedCandidatePairId可選-
一個字串,包含用於生成與此傳輸關聯的
RTCIceCandidatePairStats的物件的唯一識別符號。 srtpCipher可選-
一個字串,指示用於 安全即時傳輸協議 (SRTP) 傳輸的保護配置檔案的描述性名稱。
tlsVersion可選-
一個字串,包含協商的 TLS 版本。這對於 DTLS 傳輸有效,並且僅在 DTLS 協商完成後存在。
常見例項屬性
以下屬性是所有 WebRTC 統計資訊物件共有的。
id-
一個字串,唯一標識正在監控以生成這組統計資訊的物件。
時間戳-
一個
DOMHighResTimeStamp物件,表示此統計資訊物件樣本的採集時間。 type-
一個字串,其值為
"transport",表示該物件包含的統計資訊型別。
示例
此示例顯示了一個函式,用於返回傳輸統計資訊,如果未提供統計資訊,則返回 null。
該函式會等待 RTCPeerConnection.getStats() 呼叫返回結果,然後遍歷返回的 RTCStatsReport 以僅獲取型別為 "transport" 的統計資訊。然後,它使用報告中的資料返回統計資訊,或者返回 null。
async function numberOpenConnections (peerConnection) {
const stats = await peerConnection.getStats();
let transportStats = null;
stats.forEach((report) => {
if (report.type === "transport") {
transportStats = report;
break;
}
});
return transportStats
}
規範
| 規範 |
|---|
| WebRTC 統計 API 的識別符號 # dom-rtcstatstype-transport |
瀏覽器相容性
載入中…