WebTransport
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
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.
Das WebTransport-Interface der WebTransport API bietet Funktionalitäten, die es einem Benutzeragenten ermöglichen, eine Verbindung zu einem HTTP/3-Server herzustellen, zuverlässigen und unzuverlässigen Transport in eine oder beide Richtungen zu initiieren und die Verbindung zu schließen, wenn sie nicht mehr benötigt wird.
Konstruktor
WebTransport()-
Erstellt eine neue Instanz eines
WebTransport-Objekts.
Instanz-Eigenschaften
closedSchreibgeschützt-
Gibt ein Promise zurück, das erfüllt wird, wenn der Transport geschlossen ist.
datagramsSchreibgeschützt-
Gibt eine Instanz von
WebTransportDatagramDuplexStreamzurück, die zum Senden und Empfangen von Datagrammen verwendet werden kann. congestionControlSchreibgeschützt-
Gibt einen String zurück, der die Vorliebe der Anwendung entweder für hohen Durchsatz oder geringe Latenz beim Senden von Daten angibt.
incomingBidirectionalStreamsSchreibgeschützt-
Stellt einen oder mehrere vom Server geöffnete bidirektionale Streams dar. Gibt einen
ReadableStreamvonWebTransportBidirectionalStream-Objekten zurück. Jeder kann verwendet werden, um Daten vom Server zu lesen und Daten zurück an ihn zu schreiben. incomingUnidirectionalStreamsSchreibgeschützt-
Stellt einen oder mehrere vom Server geöffnete unidirektionale Streams dar. Gibt einen
ReadableStreamvonWebTransportReceiveStream-Objekten zurück. Jeder kann verwendet werden, um Daten vom Server zu lesen. readySchreibgeschützt-
Gibt ein Promise zurück, das erfüllt wird, wenn der Transport bereit zur Nutzung ist.
reliabilitySchreibgeschützt-
Gibt einen String zurück, der angibt, ob die Verbindung nur zuverlässige Transporte unterstützt oder auch unzuverlässige Transporte (wie UDP).
Instanz-Methoden
close()-
Schließt eine laufende WebTransport-Sitzung.
createBidirectionalStream()-
Öffnet asynchron einen bidirektionalen Stream (
WebTransportBidirectionalStream), der zum Lesen vom und Schreiben an den Server verwendet werden kann. createUnidirectionalStream()-
Öffnet asynchron einen unidirektionalen Stream (
WritableStream), der zum Schreiben an den Server verwendet werden kann. getStats()-
Gibt asynchron ein
Promisezurück, das mit einem Objekt erfüllt wird, das Statistiken zur HTTP/3-Verbindung enthält.
Beispiele
Das untenstehende Beispiel zeigt, wie Sie durch Übergeben der URL an den WebTransport()-Konstruktor eine Verbindung zu einem HTTP/3-Server herstellen würden.
Beachten Sie, dass das Schema HTTPS sein muss und die Portnummer explizit angegeben werden muss.
Sobald das WebTransport.ready-Promise erfüllt ist, können Sie die Verbindung nutzen.
async function initTransport(url) {
// Initialize transport connection
const transport = new WebTransport(url);
// The connection can be used once ready fulfills
await transport.ready;
return transport;
}
Sie können auf das Schließen der Verbindung reagieren, indem Sie warten, bis das WebTransport.closed-Promise erfüllt ist.
Fehler, die von WebTransport-Operationen zurückgegeben werden, sind vom Typ WebTransportError und enthalten zusätzliche Daten zusätzlich zu den Standard-Set von DOMException.
Die Methode closeTransport() unten zeigt eine mögliche Implementierung.
Innerhalb eines try...catch-Blocks wird await verwendet, um zu warten, bis das closed-Promise erfüllt oder abgelehnt wird, und dann wird berichtet, ob die Verbindung beabsichtigt oder aufgrund eines Fehlers geschlossen wurde.
async function closeTransport(transport) {
// Respond to connection closing
try {
await transport.closed;
console.log(`The HTTP/3 connection to ${url} closed gracefully.`);
} catch (error) {
console.error(`The HTTP/3 connection to ${url} closed due to ${error}.`);
}
}
Wir könnten die oben genannten asynchronen Funktionen innerhalb ihrer eigenen asynchronen Funktion aufrufen, wie unten gezeigt.
// Use the transport
async function useTransport(url) {
const transport = await initTransport(url);
// Use the transport object to send and receive data
// …
// When done, close the transport
await closeTransport(transport);
}
const url = "https://example.com:4999/wt";
useTransport(url);
Für weiteren Beispielcode, siehe die einzelnen Eigenschafts- und Methoden-Seiten.
Spezifikationen
| Specification |
|---|
| WebTransport> # web-transport> |