WebTransport: getStats() 方法

可用性有限

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

實驗性: 這是一項實驗性技術
在生產中使用此技術之前,請仔細檢查瀏覽器相容性表格

安全上下文: 此功能僅在安全上下文(HTTPS)中可用,且支援此功能的瀏覽器數量有限。

注意:此功能在 Web Workers 中可用。

WebTransport 介面的 getStats() 方法會非同步返回一個包含 HTTP/3 連線統計資訊的物件。

語法

js
getStats()

引數

無。

返回值

一個 Promise,它解析為一個包含 HTTP/3 連線統計資訊的物件。返回的物件可能有以下屬性/統計資料

時間戳

一個 DOMHighResTimeStamp,指示收集統計資訊的時間戳,相對於 1970 年 1 月 1 日 UTC。

bytesSent

一個正整數,表示在 QUIC 連線上傳送的位元組數,包括重傳。請注意,此計數不包括 QUIC 使用的協議(如 UDP)的額外資料,或任何其他外部幀。

packetsSent

一個正整數,表示在 QUIC 連線上傳送的資料包數量,包括已知已丟失的資料包。

packetsLost

一個正整數,表示在 QUIC 連線上丟失的資料包數量。當資料包被宣告為丟失時,此值會增加,如果隨後收到,則會減少。

numOutgoingStreamsCreated

一個正整數,表示在 QUIC 連線上建立的出站 QUIC 流的數量。

numIncomingStreamsCreated

一個正整數,表示在 QUIC 連線上建立的入站 QUIC 流的數量。

bytesReceived

一個正整數,表示在 QUIC 連線上接收的總位元組數。此計數包括來自流的重複資料,但不包括 QUIC 使用的協議(如 UDP)的額外資料,或任何其他外部幀。

packetsReceived

一個正整數,表示在 QUIC 連線上接收的總資料包數量,包括無法處理的資料包。

smoothedRtt

一個 DOMHighResTimeStamp,包含當前在連線上觀察到的平滑 往返時間 (RTT),它是在考慮了確認延遲後,根據終結點的 RTT 樣本指數加權移動平均計算得出的。

rttVariation

一個 DOMHighResTimeStamp,包含當前在連線上觀察到的往返時間樣本的平均變化。

minRtt

一個 DOMHighResTimeStamp,包含在整個連線中觀察到的最小往返時間。

資料報

一個包含透過連線進行資料報傳輸的統計資訊的物件。該物件具有以下屬性

時間戳

一個 DOMHighResTimeStamp,指示收集統計資訊的時間戳,相對於 1970 年 1 月 1 日 UTC。

expiredOutgoing

一個正整數,表示由於過期而被從傳送佇列中丟棄的資料報數量。請注意,傳送佇列中資料報在過期前的最大年齡可以在 outgoingMaxAge 中找到。

droppedIncoming

一個正整數,表示被丟棄的入站資料報的數量。如果應用程式在新的資料報填滿 readable接收佇列之前未讀取它們,則會丟棄入站資料報。

lostOutgoing

一個正整數,表示已宣告丟失的已傳送資料報的數量。請注意,資料報可能會被宣告為丟失,例如,如果在超時內沒有收到確認,或者先收到了更晚資料報的確認。

示例

下面的示例使用 await 等待 getStats() 返回的 Promise。當 Promise fulfilled 時,stats 物件中 bytesSent 屬性的結果將被記錄到控制檯。

js
const stats = await transport.getStats();
console.log(`Bytes send: ${stats.bytesSent}`);

規範

規範
WebTransport
# dom-webtransport-getstats

瀏覽器相容性