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, 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 erfüllt wird, wenn der Transport geschlossen wird. 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 Anwendungspräferenz für entweder hohen Durchsatz oder geringe Latenz beim Senden von Daten angibt.
drainingSchreibgeschützt-
Gibt ein
Promisezurück, das erfüllt 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 erfüllt 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 ob sie auch unzuverlässige Übertragungen (wie UDP) unterstützt.
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 von der der Verbindung zugrunde liegenden TLS-Sitzung abgeleitet ist. 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 Konstruktor WebTransport() übergeben.
Beachten Sie, dass das Schema HTTPS sein muss und die Portnummer explizit angegeben werden muss.
Sobald das Promise WebTransport.ready 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 Promise WebTransport.closed erfüllt wird.
Von WebTransport-Operationen zurückgegebene Fehler haben den Typ WebTransportError und enthalten zusätzliche Daten zusätzlich zum standardmäßigen Satz von DOMException.
Die nachfolgende Methode closeTransport() zeigt eine mögliche Implementierung.
Innerhalb eines try...catch-Blocks verwendet sie await, um darauf zu warten, dass das Promise closed erfüllt oder abgelehnt 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 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);
Weiteren Beispielcode finden Sie auf den Seiten der einzelnen Eigenschaften und Methoden.
Spezifikationen
| Spezifikation |
|---|
| WebTransport> # web-transport> |