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 ermöglicht es einem User Agent, eine Verbindung zu einem HTTP/3-Server herzustellen, zuverlässige und unzuverlässige Datenübertragungen in eine oder beide Richtungen zu initiieren und die Verbindung zu schließen, 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 Transportwege unterstützt.
Instanzeigenschaften
closedSchreibgeschützt-
Gibt ein
Promisezurück, das erfüllt wird, wenn die Verbindung geschlossen ist. datagramsSchreibgeschützt-
Gibt eine
WebTransportDatagramDuplexStream-Instanz zurück, mit der Datagramme gesendet und empfangen werden können. congestionControlSchreibgeschützt-
Gibt einen String zurück, der angibt, ob die Anwendung beim Senden von Daten einen hohen Durchsatz oder eine geringe Latenz bevorzugt.
drainingSchreibgeschützt-
Gibt ein
Promisezurück, das erfüllt wird, wenn die Transportsitzung beginnt, bestehende Übertragungen abzuschließen. incomingBidirectionalStreamsSchreibgeschützt-
Repräsentiert einen oder mehrere vom Server geöffnete bidirektionale Streams. Gibt einen
ReadableStreammitWebTransportBidirectionalStream-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
ReadableStreammitWebTransportReceiveStream-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 angibt, oder
"", wenn keines ausgewählt wurde. Die Protokollpräferenzen des Clients werden dem Konstruktor über die Konstruktoroptionprotocolsübergeben. readySchreibgeschützt-
Gibt ein
Promisezurück, das erfüllt wird, wenn die Verbindung einsatzbereit ist. reliabilitySchreibgeschützt-
Gibt einen String zurück, der angibt, ob die Verbindung nur zuverlässige Transportwege oder auch unzuverlässige Transportwege (wie UDP) unterstützt.
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 ein
Promisezurück, das mit Schlüsselmaterial erfüllt wird, das aus der TLS-Sitzung abgeleitet wird, die der Verbindung zugrunde liegt. getStats()-
Gibt ein
Promisezurück, das mit einem Objekt erfüllt wird, das Statistiken zur HTTP/3-Verbindung 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 als Schema HTTPS verwendet und die Portnummer ausdrücklich angegeben werden muss.
Sobald das Promise WebTransport.ready 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 das Promise WebTransport.closed erfüllt wird.
Fehler, die von WebTransport-Operationen zurückgegeben werden, sind vom Typ WebTransportError und enthalten zusätzlich zu den standardmäßigen DOMException-Daten weitere Informationen.
Die folgende Methode closeTransport() zeigt eine mögliche Implementierung.
Innerhalb eines try...catch-Blocks wartet sie mit await darauf, dass das Promise closed 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}.`);
}
}
Wir könnten die obigen asynchronen Funktionen in einer eigenen asynchronen Funktion aufrufen, wie im Folgenden 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 Codebeispiele finden Sie auf den Seiten der jeweiligen Eigenschaften und Methoden.
Spezifikationen
| Spezifikation |
|---|
| WebTransport> # web-transport> |