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 bietet Funktionen, mit denen ein User Agent eine Verbindung zu einem HTTP/3-Server herstellen, eine zuverlässige oder unzuverlässige Datenübertragung 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.
Statische Eigenschaften
supportsReliableOnlySchreibgeschützt-
Gibt einen booleschen Wert zurück, der angibt, ob der Browser WebTransport-Sitzungen ausschließlich über zuverlässige Transportprotokolle unterstützt.
Instanzeigenschaften
anticipatedConcurrentIncomingBidirectionalStreams-
Gibt die Anzahl eingehender bidirektionaler Streams an, die der Server nach Erwartung der Anwendung gleichzeitig geöffnet haben wird.
anticipatedConcurrentIncomingUnidirectionalStreams-
Gibt die Anzahl eingehender unidirektionaler Streams an, die der Server nach Erwartung der Anwendung gleichzeitig geöffnet haben wird.
closedSchreibgeschützt-
Gibt eine
Promisezurück, die erfüllt wird, wenn die Verbindung geschlossen wird. congestionControlSchreibgeschützt-
Gibt eine Zeichenfolge zurück, die angibt, ob die Anwendung beim Senden von Daten einen hohen Durchsatz oder eine geringe Latenz bevorzugt.
datagramsSchreibgeschützt-
Gibt eine
WebTransportDatagramDuplexStream-Instanz zurück, mit der Datagramme gesendet und empfangen werden können. drainingSchreibgeschützt-
Gibt eine
Promisezurück, die erfüllt wird, wenn die Transportsitzung beginnt, auszulaufen. incomingBidirectionalStreamsSchreibgeschützt-
Repräsentiert einen oder mehrere vom Server geöffnete bidirektionale Streams. Gibt einen
ReadableStreammitWebTransportBidirectionalStream-Objekten zurück. Jeder dieser Streams kann verwendet werden, um Daten vom Server zu lesen und Daten an ihn zu schreiben. incomingUnidirectionalStreamsSchreibgeschützt-
Repräsentiert einen oder mehrere vom Server geöffnete unidirektionale Streams. Gibt einen
ReadableStreammitWebTransportReceiveStream-Objekten zurück. Jeder dieser Streams kann verwendet werden, um Daten vom Server zu lesen. protocolSchreibgeschützt-
Gibt eine Zeichenfolge zurück, die das vom Server ausgewählte anwendungsspezifische Protokoll angibt, oder
"", wenn keines ausgewählt wurde. Die Protokollpräferenzen des Clients werden dem Konstruktor über die Konstruktoroptionprotocolsübergeben. readySchreibgeschützt-
Gibt eine
Promisezurück, die erfüllt wird, wenn die Verbindung einsatzbereit ist. reliabilitySchreibgeschützt-
Gibt eine Zeichenfolge zurück, die angibt, ob die Verbindung nur zuverlässige Transportprotokolle oder auch unzuverlässige Transportprotokolle (wie UDP) unterstützt.
responseHeadersSchreibgeschützt-
Gibt ein
Headers-Objekt mit den HTTP-Headern aus der Antwort des Servers auf die Anfrage zum Aufbau der Sitzung zurück odernull, wenn die Sitzung noch nicht hergestellt wurde.
Instanzmethoden
close()-
Schließt eine laufende WebTransport-Sitzung.
createBidirectionalStream()-
Öffnet asynchron einen bidirektionalen Stream (
WebTransportBidirectionalStream), mit dem Daten vom Server gelesen und an ihn geschrieben werden können. createSendGroup()-
Gibt eine
WebTransportSendGroupzurück, mit der Streams und Datagramme gruppiert werden können, sodass ihre relative Sendepriorität gemeinsam gesteuert werden kann. createUnidirectionalStream()-
Öffnet asynchron einen unidirektionalen Stream (
WritableStream), mit dem Daten an den Server geschrieben werden können. exportKeyingMaterial()-
Gibt eine
Promisezurück, die mit Schlüsselmaterial erfüllt wird, das aus der TLS-Sitzung abgeleitet wurde, auf der die Verbindung basiert. getStats()-
Gibt eine
Promisezurück, die mit einem Objekt erfüllt wird, das Statistiken zur zugrunde liegenden Verbindung des Transports enthält.
Beispiele
Der folgende Beispielcode zeigt, wie Sie eine Verbindung zu einem HTTP/3-Server herstellen, indem Sie dessen URL an den Konstruktor WebTransport() übergeben.
Beachten Sie, dass das Schema HTTPS sein und die Portnummer ausdrücklich angegeben werden muss.
Sobald die WebTransport.ready-Promise erfüllt ist, 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 warten, bis die WebTransport.closed-Promise erfüllt wird.
Fehler, die von WebTransport-Operationen zurückgegeben werden, sind vom Typ WebTransportError und enthalten zusätzlich zu den Standardinformationen einer DOMException weitere Daten.
Die folgende Methode closeTransport() zeigt eine mögliche Implementierung.
In einem try...catch-Block wartet sie mit await darauf, dass die closed-Promise erfüllt oder zurückgewiesen wird, und meldet anschließend, 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}.`);
}
}
Wie unten gezeigt, können wir die obigen asynchronen Funktionen innerhalb einer eigenen asynchronen Funktion aufrufen.
// 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 Codebeispiele finden Sie auf den Seiten der einzelnen Eigenschaften und Methoden.
Spezifikationen
| Spezifikation |
|---|
| WebTransport> # web-transport> |