WebTransport
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Hinweis: Dieses Feature ist verfügbar in Web Workers.
Die WebTransport
-Schnittstelle der WebTransport API bietet Funktionalität, um einem Benutzeragenten zu 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
WebTransport
-Objektinstanz.
Instanzeigenschaften
closed
Nur lesbar-
Gibt ein Promise zurück, das aufgelöst wird, wenn der Transport geschlossen ist.
datagrams
Nur lesbar-
Gibt eine
WebTransportDatagramDuplexStream
-Instanz zurück, die zum Senden und Empfangen von Datagrammen verwendet werden kann. congestionControl
Nur lesbar Experimentell-
Gibt einen String zurück, der die Anwendungsvorliebe für entweder hohe Durchsatzrate oder niedrige Latenz beim Senden von Daten angibt.
incomingBidirectionalStreams
Nur lesbar-
Stellt einen oder mehrere vom Server geöffnete bidirektionale Streams dar. Gibt einen
ReadableStream
vonWebTransportBidirectionalStream
-Objekten zurück. Jeder kann verwendet werden, um Daten vom Server zu lesen und zurück zu ihm zu schreiben. incomingUnidirectionalStreams
Nur lesbar-
Stellt einen oder mehrere vom Server geöffnete unidirektionale Streams dar. Gibt einen
ReadableStream
vonWebTransportReceiveStream
-Objekten zurück. Jeder kann verwendet werden, um Daten vom Server zu lesen. ready
Nur lesbar-
Gibt ein Promise zurück, das aufgelöst wird, wenn der Transport einsatzbereit ist.
reliability
Nur lesbar Experimentell-
Gibt einen String zurück, der angibt, ob die Verbindung nur zuverlässige Transporte unterstützt oder ob sie auch unzuverlässige Transporte (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 zum Server verwendet werden kann. createUnidirectionalStream()
-
Öffnet asynchron einen unidirektionalen Stream (
WritableStream
), der zum Schreiben zum Server verwendet werden kann. getStats()
Experimentell-
Gibt asynchron ein
Promise
zurück, das mit einem Objekt mit HTTP/3-Verbindungsstatistiken erfüllt wird.
Beispiele
Der unten stehende Beispielcode zeigt, wie Sie durch Übergabe der URL eines HTTP/3-Servers an den WebTransport()
-Konstruktor eine Verbindung herstellen würden. Beachten Sie, dass das Schema HTTPS sein muss und die Portnummer explizit angegeben werden muss. Sobald das WebTransport.ready
-Promise erfüllt ist, 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 darauf warten, dass das WebTransport.closed
-Promise erfüllt wird. Fehler, die durch WebTransport
-Operationen zurückgegeben werden, sind vom Typ WebTransportError
und enthalten zusätzliche Daten über den Standard-DOMException
-Satz hinaus.
Die Methode closeTransport()
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 es wird anschließend berichtet, ob die Verbindung beabsichtigt 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);
Für weiteren Beispielcode siehe die einzelnen Eigenschafts- und Methodenseiten.
Spezifikationen
Specification |
---|
WebTransport # web-transport |
Browser-Kompatibilität
BCD tables only load in the browser