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
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
truespiegelt ein nicht aufnullgesetzter Wert vonestimatedSendRatedie für die Anwendung verfügbare Netzwerkkapazität wider. Beifalsesendet die Anwendung möglicherweise deutlich weniger Daten, als die Überlastungssteuerung zulässt, undestimatedSendRateist möglicherweise eine ungenaue Schätzung der verfügbaren Netzwerkkapazität. bytesAcknowledgedOptional-
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. bytesLostOptional-
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.
bytesReceivedOptional-
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.
bytesSentOptional-
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:
droppedIncomingOptional-
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. expiredIncomingOptional-
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 durchincomingMaxAgefestgelegt. expiredOutgoingOptional-
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
outgoingMaxAgefestgelegt. lostOutgoingOptional-
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 eineWebTransport-Sitzung teilen. Sie wird vom Algorithmus zur Überlastungssteuerung berechnet (siehecongestionControl). 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 Wertnullsein kann, selbst wenn er im Ergebnis eines vorherigen Aufrufs vongetStats()nichtnullwar. minRttOptional-
Ein
DOMHighResTimeStamp, der die kürzeste auf der gesamten Verbindung beobachtete Umlaufzeit enthält. packetsLostOptional-
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.
packetsReceivedOptional-
Eine nicht negative Ganzzahl, die angibt, wie viele Pakete insgesamt auf der Verbindung empfangen wurden, einschließlich Paketen, die nicht verarbeitet werden konnten.
packetsSentOptional-
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.
rttVariationOptional-
Ein
DOMHighResTimeStamp, der die mittlere Variation der derzeit auf der Verbindung beobachteten Umlaufzeitmessungen enthält. smoothedRttOptional-
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
InvalidStateErrorDOMException-
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.
const stats = await transport.getStats();
if (stats.bytesSent !== undefined) {
console.log(`Bytes sent: ${stats.bytesSent}`);
}
Spezifikationen
| Spezifikation |
|---|
| WebTransport> # dom-webtransport-getstats> |