WebTransportSendStream: getStats() 方法

可用性有限

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

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

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

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

WebTransportSendStream 介面的 getStats() 方法會非同步返回一個包含當前流統計資訊的物件。

統計資訊包括寫入流的總位元組數、已傳送的位元組數(忽略資料包開銷)、至少已傳送一次的位元組數以及已確認的位元組數(直到第一個未確認的按順序位元組)。因此,它提供了一種衡量應用程式在該特定流上向伺服器傳送位元組速度的指標。

語法

js
getStats()

引數

無。

返回值

一個 Promise,它會解析為一個包含當前流統計資訊的物件。返回的物件具有以下屬性:

bytesAcknowledged

一個正整數,表示已寫入此流並且已透過 QUIC 的 ACK 機制由伺服器確認收到的位元組數。只計算到第一個未確認位元組(不包括該位元組)為止的順序位元組。此數字只能增加,且始終小於或等於 bytesSent。當連線使用 HTTP/2 時,此值將等於 bytesSent

bytesSent

一個正整數,表示至少已傳送一次(但不一定已確認)的已寫入此流的位元組數。此數字只能增加,且始終小於或等於 bytesWritten。請注意,此計數不包括作為網路開銷傳送的位元組(例如資料包頭)。

bytesWritten

一個正整數,表示已成功寫入此流的位元組數。此數字只能增加。

示例

下面的程式碼片段使用 await 來等待 getStats() 返回的 Promise。當 Promise fulfilled 時,已傳送但未確認的位元組數結果會被記錄到控制檯。

js
const stats = await stream.getStats();
const bytesNotReceived = stats.bytesWritten - stats.bytesAcknowledged;
console.log(`Bytes still successfully sent: ${bytesNotReceived}`);

規範

規範
WebTransport
# dom-webtransportsendstream-getstats

瀏覽器相容性