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, 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, sobald sie nicht mehr benötigt wird.
Konstruktor
WebTransport()-
Erstellt eine neue Instanz des
WebTransportObjekts.
Instanz-Eigenschaften
closedSchreibgeschützt-
Gibt ein Promise zurück, das aufgelöst wird, wenn der Transport geschlossen wird.
datagramsSchreibgeschützt-
Gibt eine
WebTransportDatagramDuplexStreamInstanz zurück, die zum Senden und Empfangen von Datagrammen verwendet werden kann. congestionControlSchreibgeschützt-
Gibt eine Zeichenkette zurück, die die Anwendungsvorliebe für entweder hohen Durchsatz oder niedrige Latenz beim Senden von Daten angibt.
incomingBidirectionalStreamsSchreibgeschützt-
Repräsentiert einen oder mehrere vom Server geöffnete bidirektionale Streams. Gibt einen
ReadableStreamvonWebTransportBidirectionalStreamObjekten zurück. Jeder kann verwendet werden, um Daten vom Server zu lesen und Daten zurück an ihn zu schreiben. incomingUnidirectionalStreamsSchreibgeschützt-
Repräsentiert einen oder mehrere vom Server geöffnete unidirektionale Streams. Gibt einen
ReadableStreamvonWebTransportReceiveStreamObjekten zurück. Jeder kann verwendet werden, um Daten vom Server zu lesen. protocolSchreibgeschützt-
Gibt eine Zeichenkette zurück, die das anwendungsspezifische Protokoll repräsentiert, das vom Server ausgewählt wurde, oder
"", wenn keines ausgewählt wurde. Die Präferenzen des Clients für das Protokoll werden im Konstruktor mit derprotocolsKonstruktoroption übergeben. readySchreibgeschützt-
Gibt ein Promise zurück, das aufgelöst wird, wenn der Transport einsatzbereit ist.
reliabilitySchreibgeschützt-
Gibt eine Zeichenkette zurück, die 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 von und Schreiben an 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 Satz kontrolliert werden kann. createUnidirectionalStream()-
Öffnet asynchron einen unidirektionalen Stream (
WritableStream), der zum Schreiben an den Server verwendet werden kann. exportKeyingMaterial()-
Gibt ein
Promisezurück, das mit Schlüsseln erfüllt wird, die aus der TLS-Sitzung der Verbindung abgeleitet wurden. 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 sich mit einem HTTP/3-Server verbinden, indem Sie seine URL an den WebTransport() Konstruktor übergeben. Beachten Sie, dass das Schema HTTPS sein muss und die Portnummer ausdrücklich angegeben werden muss. Sobald das WebTransport.ready Promise erfüllt wird, 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 wird. Fehler, die bei WebTransport-Operationen auftreten, sind vom Typ WebTransportError und enthalten zusätzliche Daten über den Standard- DOMException Satz hinaus.
Die closeTransport() Methode unten zeigt eine mögliche Implementierung. Innerhalb eines try...catch Blocks wird await verwendet, um auf die Erfüllung oder Ablehnung des closed Promises zu warten, und dann wird berichtet, 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 oben genannten 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);
Für weiteren Beispielcode siehe die einzelnen Eigenschafts- und Methoden-Seiten.
Spezifikationen
| Spezifikation |
|---|
| WebTransport> # web-transport> |