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

View in English Always switch to English

RTCDataChannel: close()-Methode

Baseline Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Januar 2020 browserübergreifend verfügbar.

Die RTCDataChannel.close()-Methode schließt den RTCDataChannel. Beide Peers dürfen diese Methode aufrufen, um die Schließung des Kanals einzuleiten.

Das Schließen des Datenkanals erfolgt nicht sofort. Der größte Teil des Schließungsvorgangs wird asynchron abgewickelt; Sie können erkennen, wann der Kanal vollständig geschlossen ist, indem Sie auf ein close-Ereignis auf dem Datenkanal achten.

Die Abfolge der Ereignisse, die als Reaktion auf den Aufruf dieser Methode auftreten:

  1. RTCDataChannel.readyState wird auf closing gesetzt.
  2. Ein Hintergrundprozess wird eingerichtet, um die restlichen Schritte unten zu bearbeiten, und close() kehrt zum Aufrufer zurück.
  3. Die Transportschicht verarbeitet alle gepufferten Nachrichten; die Protokollschicht entscheidet, ob sie gesendet oder verworfen werden.
  4. Der zugrunde liegende Datentransport wird geschlossen.
  5. Die RTCDataChannel.readyState-Eigenschaft wird auf closed gesetzt.
  6. Wenn der Transport mit einem Fehler geschlossen wurde, wird dem RTCDataChannel ein error-Ereignis gesendet, dessen name auf NetworkError gesetzt ist.
  7. Ein close-Ereignis wird an den Kanal gesendet.

Syntax

js
close()

Parameter

Keine.

Rückgabewert

Keiner (undefined).

Beispiele

js
const pc = new RTCPeerConnection();
const dc = pc.createDataChannel("my channel");

dc.onmessage = (event) => {
  console.log(`received: ${event.data}`);
  dc.close(); // We decided to close after the first received message
};

dc.onopen = () => {
  console.log("datachannel open");
};

dc.onclose = () => {
  console.log("datachannel close");
};

// Now negotiate the connection and so forth…

Spezifikationen

Spezifikation
WebRTC: Real-Time Communication in Browsers
# dom-rtcdatachannel-close

Browser-Kompatibilität

Siehe auch