Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

WebTransport

Baseline 2026 *
Neu verfügbar

Seit March 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.

Das WebTransport-Interface der WebTransport API bietet Funktionen, die es einem User Agent ermöglichen, eine Verbindung zu einem HTTP/3-Server herzustellen, zuverlässigen und unzuverlässigen Transport in eine oder beide Richtungen einzuleiten und die Verbindung zu schließen, sobald sie nicht mehr benötigt wird.

Konstruktor

WebTransport()

Erstellt eine neue Instanz des WebTransport-Objekts.

Instanz-Eigenschaften

closed Schreibgeschützt

Gibt ein Versprechen zurück, das aufgelöst wird, wenn der Transport geschlossen wird.

datagrams Schreibgeschützt

Gibt eine Instanz von WebTransportDatagramDuplexStream zurück, die verwendet werden kann, um Datagramme zu senden und zu empfangen.

congestionControl Schreibgeschützt

Gibt einen String zurück, der die Anwendungsvorliebe für entweder hohen Durchsatz oder niedrige Latenz beim Senden von Daten anzeigt.

incomingBidirectionalStreams Schreibgeschützt

Repräsentiert einen oder mehrere vom Server geöffnete bidirektionale Streams. Gibt einen ReadableStream von WebTransportBidirectionalStream-Objekten zurück. Jeder kann verwendet werden, um Daten vom Server zu lesen und Daten zurückzuschreiben.

incomingUnidirectionalStreams Schreibgeschützt

Repräsentiert einen oder mehrere vom Server geöffnete unidirektionale Streams. Gibt einen ReadableStream von WebTransportReceiveStream-Objekten zurück. Jeder kann verwendet werden, um Daten vom Server zu lesen.

ready Schreibgeschützt

Gibt ein Versprechen zurück, das aufgelöst wird, wenn der Transport bereit zur Nutzung ist.

reliability Schreibgeschützt

Gibt einen String zurück, der anzeigt, 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 verwendet werden kann, um Daten von und zum Server zu lesen und zu schreiben.

createSendGroup()

Gibt eine WebTransportSendGroup zurück, die verwendet werden kann, um Streams und Datagramme zu gruppieren, sodass ihre relative Sendepriorität als Satz gesteuert werden kann.

createUnidirectionalStream()

Öffnet asynchron einen unidirektionalen Stream (WritableStream), der verwendet werden kann, um an den Server zu schreiben.

getStats()

Gibt asynchron ein Promise zurück, das mit einem Objekt erfüllt wird, das HTTP/3-Verbindungsstatistiken enthält.

Beispiele

Der unten stehende Beispielcode zeigt, wie Sie durch Übergeben der URL eines HTTP/3-Servers an den WebTransport()-Konstruktor eine Verbindung herstellen können. Beachten Sie, dass das Schema HTTPS sein muss und die Portnummer explizit angegeben werden muss. Sobald das WebTransport.ready-Versprechen erfüllt wird, können Sie die Verbindung nutzen.

js
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 auf das Erfüllen des WebTransport.closed-Versprechens warten. Fehler, die während WebTransport-Operationen auftreten, sind vom Typ WebTransportError und enthalten zusätzliche Daten über den üblichen DOMException-Satz hinaus.

Die unten stehende closeTransport()-Methode zeigt eine mögliche Implementierung. In einem try...catch-Block wird await verwendet, um auf das Erfüllen oder Ablehnen des closed-Versprechens zu warten und dann zu berichten, ob die Verbindung absichtlich oder aufgrund eines Fehlers geschlossen wurde.

js
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 aufgeführten asynchronen Funktionen in ihrer eigenen asynchronen Funktion aufrufen, wie unten gezeigt.

js
// 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

Spezifikation
WebTransport
# web-transport

Browser-Kompatibilität

Siehe auch