WebTransport
Baseline 2026>
Neu verfügbar
*
Seit März 2026 funktioniert diese Funktion auf aktuellen Geräten und in aktuellen Browserversionen. Auf älteren Geräten oder in älteren Browsern funktioniert sie möglicherweise nicht.
* Einige Teile dieser Funktion werden möglicherweise unterschiedlich gut unterstützt.
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 WebTransport-Schnittstelle der WebTransport API stellt Funktionen bereit, mit denen ein User-Agent eine Verbindung zu einem HTTP/3-Server herstellen, zuverlässige und unzuverlässige Übertragungen in eine oder beide Richtungen initiieren und die Verbindung schließen kann, sobald sie nicht mehr benötigt wird.
Konstruktor
WebTransport()-
Erstellt eine neue
WebTransport-Objektinstanz.
Instanzeigenschaften
closedSchreibgeschützt-
Gibt ein
Promisezurück, das aufgelöst wird, wenn der Transport geschlossen wird. datagramsSchreibgeschützt-
Gibt eine
WebTransportDatagramDuplexStream-Instanz zurück, die zum Senden und Empfangen von Datagrammen verwendet werden kann. congestionControlSchreibgeschützt-
Gibt einen String zurück, der die Anwendungspräferenz für entweder hohen Durchsatz oder geringe Latenz beim Senden von Daten angibt.
drainingSchreibgeschützt-
Gibt ein
Promisezurück, das aufgelöst wird, wenn die Transportsitzung mit dem Leeren beginnt. incomingBidirectionalStreamsSchreibgeschützt-
Repräsentiert einen oder mehrere vom Server geöffnete bidirektionale Streams. Gibt einen
ReadableStreamvonWebTransportBidirectionalStream-Objekten zurück. Jeder davon kann verwendet werden, um Daten vom Server zu lesen und Daten an ihn zurückzuschreiben. incomingUnidirectionalStreamsSchreibgeschützt-
Repräsentiert einen oder mehrere vom Server geöffnete unidirektionale Streams. Gibt einen
ReadableStreamvonWebTransportReceiveStream-Objekten zurück. Jeder davon kann verwendet werden, um Daten vom Server zu lesen. protocolSchreibgeschützt-
Gibt einen String zurück, der das vom Server ausgewählte anwendungsspezifische Protokoll repräsentiert, oder
"", wenn keines ausgewählt wurde. Client-Präferenzen für das Protokoll werden in der Konstruktoroptionprotocolsan den Konstruktor übergeben. readySchreibgeschützt-
Gibt ein
Promisezurück, das aufgelöst wird, wenn der Transport einsatzbereit ist. reliabilitySchreibgeschützt-
Gibt einen String zurück, der angibt, ob die Verbindung nur zuverlässige Übertragungen unterstützt oder auch unzuverlässige Übertragungen (wie UDP).
Instanzmethoden
close()-
Schließt eine laufende WebTransport-Sitzung.
createBidirectionalStream()-
Öffnet asynchron einen bidirektionalen Stream (
WebTransportBidirectionalStream), der zum Lesen vom und Schreiben auf den Server verwendet werden kann. createSendGroup()-
Gibt eine
WebTransportSendGroupzurück, die verwendet werden kann, um Streams und Datagramme zu gruppieren, sodass ihre relative Sendepriorität als Gruppe gesteuert werden kann. createUnidirectionalStream()-
Öffnet asynchron einen unidirektionalen Stream (
WritableStream), der zum Schreiben auf den Server verwendet werden kann. exportKeyingMaterial()-
Gibt ein
Promisezurück, das mit Schlüsselmaterial erfüllt wird, das aus der der Verbindung zugrunde liegenden TLS-Sitzung abgeleitet wurde. getStats()-
Gibt ein
Promisezurück, das mit einem Objekt erfüllt wird, das HTTP/3-Verbindungsstatistiken enthält.
Beispiele
Der folgende Beispielcode zeigt, wie Sie eine Verbindung zu einem HTTP/3-Server herstellen, indem Sie dessen URL an den WebTransport()-Konstruktor übergeben.
Beachten Sie, dass das Schema HTTPS sein muss und die Portnummer explizit angegeben werden muss.
Sobald das WebTransport.ready-Promise erfüllt wird, können Sie die Verbindung verwenden.
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 darauf warten, dass das WebTransport.closed-Promise erfüllt wird.
Von WebTransport-Operationen zurückgegebene Fehler haben den Typ WebTransportError und enthalten zusätzlich zum Standardumfang von DOMException weitere Daten.
Die untenstehende Methode closeTransport() zeigt eine mögliche Implementierung.
Innerhalb eines try...catch-Blocks verwendet sie await, um darauf zu warten, dass das closed-Promise erfüllt oder abgelehnt wird, und meldet dann, ob die Verbindung absichtlich 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 obigen asynchronen Funktionen in 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);
Weitere Beispielcodes finden Sie auf den einzelnen Seiten zu Eigenschaften und Methoden.
Spezifikationen
| Spezifikation |
|---|
| WebTransport> # web-transport> |