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 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, eine zuverlässige oder unzuverlässige Datenübertragung 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.

Statische Eigenschaften

supportsReliableOnly Schreibgeschützt

Gibt einen booleschen Wert zurück, der angibt, ob der Browser WebTransport-Sitzungen ausschließlich über zuverlässige Transportprotokolle unterstützt.

Instanzeigenschaften

anticipatedConcurrentIncomingBidirectionalStreams

Gibt die Anzahl eingehender bidirektionaler Streams an, die der Server nach Erwartung der Anwendung gleichzeitig geöffnet haben wird.

anticipatedConcurrentIncomingUnidirectionalStreams

Gibt die Anzahl eingehender unidirektionaler Streams an, die der Server nach Erwartung der Anwendung gleichzeitig geöffnet haben wird.

closed Schreibgeschützt

Gibt eine Promise zurück, die erfüllt wird, wenn die Verbindung geschlossen wird.

congestionControl Schreibgeschützt

Gibt eine Zeichenfolge zurück, die angibt, ob die Anwendung beim Senden von Daten einen hohen Durchsatz oder eine geringe Latenz bevorzugt.

datagrams Schreibgeschützt

Gibt eine WebTransportDatagramDuplexStream-Instanz zurück, mit der Datagramme gesendet und empfangen werden können.

draining Schreibgeschützt

Gibt eine Promise zurück, die erfüllt wird, wenn die Transportsitzung beginnt, auszulaufen.

incomingBidirectionalStreams Schreibgeschützt

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

incomingUnidirectionalStreams Schreibgeschützt

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

protocol Schreibgeschützt

Gibt eine Zeichenfolge zurück, die das vom Server ausgewählte anwendungsspezifische Protokoll angibt, oder "", wenn keines ausgewählt wurde. Die Protokollpräferenzen des Clients werden dem Konstruktor über die Konstruktoroption protocols übergeben.

ready Schreibgeschützt

Gibt eine Promise zurück, die erfüllt wird, wenn die Verbindung einsatzbereit ist.

reliability Schreibgeschützt

Gibt eine Zeichenfolge zurück, die angibt, ob die Verbindung nur zuverlässige Transportprotokolle oder auch unzuverlässige Transportprotokolle (wie UDP) unterstützt.

responseHeaders Schreibgeschützt

Gibt ein Headers-Objekt mit den HTTP-Headern aus der Antwort des Servers auf die Anfrage zum Aufbau der Sitzung zurück oder null, wenn die Sitzung noch nicht hergestellt wurde.

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 WebTransportSendGroup zurü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 eine Promise zurück, die mit Schlüsselmaterial erfüllt wird, das aus der TLS-Sitzung abgeleitet wurde, auf der die Verbindung basiert.

getStats()

Gibt eine Promise zurück, die mit einem Objekt erfüllt wird, das Statistiken zur zugrunde liegenden Verbindung des Transports 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 und die Portnummer ausdrücklich angegeben werden muss. Sobald die WebTransport.ready-Promise erfüllt ist, können Sie die Verbindung verwenden.

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 warten, bis die WebTransport.closed-Promise erfüllt wird. Fehler, die von WebTransport-Operationen zurückgegeben werden, sind vom Typ WebTransportError und enthalten zusätzlich zu den Standardinformationen einer DOMException weitere Daten.

Die folgende Methode closeTransport() zeigt eine mögliche Implementierung. In einem try...catch-Block wartet sie mit await darauf, dass die closed-Promise erfüllt oder zurückgewiesen wird, und meldet anschließend, 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}.`);
  }
}

Wie unten gezeigt, können wir die obigen asynchronen Funktionen innerhalb einer eigenen asynchronen Funktion aufrufen.

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);

Weitere Codebeispiele finden Sie auf den Seiten der einzelnen Eigenschaften und Methoden.

Spezifikationen

Spezifikation
WebTransport
# web-transport

Browser-Kompatibilität

Siehe auch