Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

WebTransport: Methode getStats()

Eingeschränkt verfügbar

Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.

Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.

Hinweis: Diese Funktion ist in Web Workers verfügbar.

Die Methode getStats() der Schnittstelle WebTransport gibt ein Promise zurück, das mit einem Objekt erfüllt wird, das Statistiken zur zugrunde liegenden Verbindung des Transports enthält.

Diese Statistiken können verwendet werden, um die Qualität der Verbindung zu überwachen oder die von der Anwendung gesendete Datenmenge an die geschätzte verfügbare Senderate anzupassen. Wenn der Transport geschlossen wurde, wird das Promise mit den zuletzt verfügbaren Statistiken für die Verbindung erfüllt.

Syntax

js
getStats()

Parameter

Keine.

Rückgabewert

Ein Promise, das mit einem Objekt erfüllt wird, das Statistiken zur zugrunde liegenden Verbindung enthält.

Nicht verfügbare Statistiken fehlen im zurückgegebenen Objekt. Wenn der Transport mit allowPooling auf true gesetzt erstellt wurde, können nur die Eigenschaften atSendCapacity, estimatedSendRate, minRtt, rttVariation und smoothedRtt vorhanden sein. Das Objekt datagrams ist weiterhin vorhanden, hat aber keine Eigenschaften.

Das zurückgegebene Objekt kann die folgenden Eigenschaften haben:

atSendCapacity

Ein boolescher Wert, der angibt, ob die Anwendung Daten mit der Kapazität des Netzwerks sendet. Bei true spiegelt ein nicht auf null gesetzter Wert von estimatedSendRate die für die Anwendung verfügbare Netzwerkkapazität wider. Bei false sendet die Anwendung möglicherweise deutlich weniger Daten, als die Überlastungssteuerung zulässt, und estimatedSendRate ist möglicherweise eine ungenaue Schätzung der verfügbaren Netzwerkkapazität.

bytesAcknowledged Optional

Eine nicht negative Ganzzahl, die angibt, wie viele Nutzdaten-Bytes der Server auf der Verbindung als empfangen bestätigt hat (mithilfe des ACK-Mechanismus von QUIC). Diese Anzahl schließt jeglichen Framing-Overhead aus. Sie liegt in der Regel unter bytesSent, kann aufgrund von Paketverlusten aber dauerhaft niedriger bleiben.

bytesLost Optional

Eine nicht negative Ganzzahl, die angibt, wie viele Bytes auf der Verbindung verloren gegangen sind. Dieser Wert steigt, wenn Pakete als verloren eingestuft werden, und sinkt, wenn sie anschließend empfangen werden. Diese Anzahl schließt UDP und jegliches andere äußere Framing aus.

bytesReceived Optional

Eine nicht negative Ganzzahl, die angibt, wie viele Bytes insgesamt auf der Verbindung empfangen wurden. Diese Anzahl schließt doppelt empfangene Daten aus Streams ein, aber UDP und jegliches andere äußere Framing aus.

bytesSent Optional

Eine nicht negative Ganzzahl, die angibt, wie viele Nutzdaten-Bytes auf der Verbindung gesendet wurden. Diese Anzahl schließt jeglichen Framing-Overhead und erneute Übertragungen aus.

datagrams

Ein Objekt mit Statistiken zur Übertragung von Datagrammen über die Verbindung. Das Objekt kann die folgenden Eigenschaften haben:

droppedIncoming Optional

Eine nicht negative Ganzzahl, die angibt, wie viele eingehende Datagramme verworfen wurden. Eingehende Datagramme werden verworfen, wenn die Anwendung sie nicht liest, bevor neue Datagramme die Empfangswarteschlange des readable-Streams überfüllen.

expiredIncoming Optional

Eine nicht negative Ganzzahl, die angibt, wie viele eingehende Datagramme verworfen wurden, weil sie abgelaufen waren, bevor sie aus dem readable-Stream gelesen wurden. Das Höchstalter eines eingehenden Datagramms wird durch incomingMaxAge festgelegt.

expiredOutgoing Optional

Eine nicht negative Ganzzahl, die angibt, wie viele Datagramme aus der Sendewarteschlange verworfen wurden, weil sie abgelaufen waren. Das Höchstalter eines zum Senden eingereihten Datagramms wird durch outgoingMaxAge festgelegt.

lostOutgoing Optional

Eine nicht negative Ganzzahl, die angibt, wie viele gesendete Datagramme als verloren eingestuft wurden. Ein Datagramm kann beispielsweise als verloren eingestuft werden, wenn innerhalb einer bestimmten Zeitspanne keine Bestätigung eingeht oder die Bestätigung für ein späteres Datagramm zuerst empfangen wird.

estimatedSendRate

Eine nicht negative Ganzzahl, die die geschätzte Rate in Bit pro Sekunde angibt, mit der der User Agent in die Warteschlange eingereihte Daten sendet. Der Wert ist null, wenn dem User Agent derzeit keine Schätzung vorliegt. Diese Rate gilt für alle Streams und Datagramme, die sich eine WebTransport-Sitzung teilen. Sie wird vom Algorithmus zur Überlastungssteuerung berechnet (siehe congestionControl). Sie schließt jeglichen Framing-Overhead aus und gibt die Rate an, mit der Nutzdaten einer Anwendung gesendet werden könnten. Beachten Sie, dass der Wert null sein kann, selbst wenn er im Ergebnis eines vorherigen Aufrufs von getStats() nicht null war.

minRtt Optional

Ein DOMHighResTimeStamp, der die kürzeste auf der gesamten Verbindung beobachtete Umlaufzeit enthält.

packetsLost Optional

Eine nicht negative Ganzzahl, die angibt, wie viele Pakete auf der Verbindung verloren gegangen sind. Dieser Wert steigt, wenn Pakete als verloren eingestuft werden, und sinkt, wenn sie anschließend empfangen werden.

packetsReceived Optional

Eine nicht negative Ganzzahl, die angibt, wie viele Pakete insgesamt auf der Verbindung empfangen wurden, einschließlich Paketen, die nicht verarbeitet werden konnten.

packetsSent Optional

Eine nicht negative Ganzzahl, die angibt, wie viele Pakete auf der Verbindung gesendet wurden, einschließlich derjenigen, von denen bekannt ist, dass sie verloren gegangen sind.

rttVariation Optional

Ein DOMHighResTimeStamp, der die mittlere Variation der derzeit auf der Verbindung beobachteten Umlaufzeitmessungen enthält.

smoothedRtt Optional

Ein DOMHighResTimeStamp, der die derzeit auf der Verbindung beobachtete geglättete Umlaufzeit (RTT) enthält. Sie wird unter Berücksichtigung von Bestätigungsverzögerungen als exponentiell gewichteter gleitender Durchschnitt der RTT-Messungen eines Endpunkts berechnet.

Ausnahmen

InvalidStateError DOMException

Das zurückgegebene Promise wird mit dieser Ausnahme zurückgewiesen, wenn die Verbindung des Transports beim Aufruf der Methode bereits fehlgeschlagen ist oder wenn die Verbindung fehlschlägt, bevor sie hergestellt wurde.

Beispiele

Protokollieren der auf einer Verbindung gesendeten Bytes

Das folgende Beispiel verwendet await, um auf das von getStats() zurückgegebene Promise zu warten. Wenn das Promise erfüllt wird, wird der Wert der Eigenschaft bytesSent im Statistikobjekt in der Konsole ausgegeben, sofern die Eigenschaft vorhanden ist.

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

Spezifikationen

Spezifikation
WebTransport
# dom-webtransport-getstats

Browser-Kompatibilität