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

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: Diese Funktion ist in Web Workers verfügbar.

Das WebTransport-Interface der WebTransport API bietet Funktionalitäten, 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, wenn sie nicht mehr benötigt wird.

Konstruktor

WebTransport()

Erstellt eine neue Instanz eines WebTransport-Objekts.

Instanz-Eigenschaften

closed Schreibgeschützt

Gibt ein Promise zurück, das erfüllt wird, wenn der Transport geschlossen ist.

datagrams Schreibgeschützt

Gibt eine Instanz von WebTransportDatagramDuplexStream zurück, die zum Senden und Empfangen von Datagrammen verwendet werden kann.

congestionControl Schreibgeschützt

Gibt einen String zurück, der die Vorliebe der Anwendung entweder für hohen Durchsatz oder geringe Latenz beim Senden von Daten angibt.

incomingBidirectionalStreams Schreibgeschützt

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

incomingUnidirectionalStreams Schreibgeschützt

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

ready Schreibgeschützt

Gibt ein Promise zurück, das erfüllt wird, wenn der Transport bereit zur Nutzung ist.

reliability Schreibgeschützt

Gibt einen String zurück, der 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 vom und Schreiben an den Server verwendet werden kann.

createUnidirectionalStream()

Öffnet asynchron einen unidirektionalen Stream (WritableStream), der zum Schreiben an den Server verwendet werden kann.

getStats()

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

Beispiele

Das untenstehende Beispiel zeigt, wie Sie durch Übergeben der URL an den WebTransport()-Konstruktor eine Verbindung zu einem HTTP/3-Server 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.

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 das WebTransport.closed-Promise erfüllt ist. Fehler, die von WebTransport-Operationen zurückgegeben werden, sind vom Typ WebTransportError und enthalten zusätzliche Daten zusätzlich zu den Standard-Set von DOMException.

Die Methode closeTransport() unten zeigt eine mögliche Implementierung. Innerhalb eines try...catch-Blocks wird await verwendet, um zu warten, bis das closed-Promise erfüllt oder abgelehnt wird, und dann wird berichtet, ob die Verbindung beabsichtigt 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 genannten asynchronen Funktionen innerhalb 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 Methoden-Seiten.

Spezifikationen

Specification
WebTransport
# web-transport

Browser-Kompatibilität

Siehe auch