RTCTransportStats

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

WebRTC API 中的 RTCTransportStats 字典提供了有關特定候選對使用的傳輸 (RTCDtlsTransport 及其底層 RTCIceTransport) 的資訊。

BUNDLE 功能是 SDP 的一個擴充套件,它允許協商使用單個傳輸來發送和接收由多個 SDP 媒體描述所定義的媒體。如果遠端端點已知此功能,則在協商完成後,所有 MediaStreamTrack 和資料通道都會被捆綁到單個傳輸上。這對於當前瀏覽器是成立的,但如果連線到不支援 BUNDLE 的舊端點,則可能為不同媒體使用單獨的傳輸。協商中使用的策略是在 RTCPeerConnection 建構函式 中配置的。

可以透過迭代 RTCPeerConnection.getStats() 返回的 RTCStatsReport 來獲取這些統計資訊,直到找到一個 typetransport 的報告。

例項屬性

bytesReceived 可選

此傳輸上接收到的總有效載荷位元組數(接收的位元組數,不包括標頭、填充或 ICE 連線檢查)。

bytesSent 可選

此傳輸上傳送的總有效載荷位元組數(傳送的位元組數,不包括標頭、填充或 ICE 連線檢查)。

dtlsCipher 可選

一個字串,指示用於 DTLS 傳輸的密碼套件的名稱,例如 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256

dtlsRole 可選 實驗性

一個字串,指示關聯的 RTCPeerConnection 的 DTLS 角色。其值可以是:clientserverunknown(在 DTLS 協商開始之前)。

dtlsState

一個字串,指示底層 stateRTCDtlsTransport 的當前狀態。其值可以是:newconnectingconnectedclosedfailed

iceLocalUsernameFragment 可選 實驗性

一個字串,指示此傳輸管理的 ICE 互動會話的本地使用者名稱片段。該片段唯一地標識了該會話。

iceRole 可選 實驗性

一個字串,指示底層 RTCIceTransport 的 ICE role。其值可以是:controlledcontrollingunknown

iceState 可選 實驗性

一個字串,指示底層 RTCIceTransport 的當前 state。其值可以是:newcheckingconnectedcompleteddisconnectedfailedclosed

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

js
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

瀏覽器相容性