RTCDataChannel: close()-Methode
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.
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:
RTCDataChannel.readyState
wird aufclosing
gesetzt.- Ein Hintergrundprozess wird eingerichtet, um die restlichen Schritte unten zu bearbeiten, und
close()
kehrt zum Aufrufer zurück. - Die Transportschicht verarbeitet alle gepufferten Nachrichten; die Protokollschicht entscheidet, ob sie gesendet oder verworfen werden.
- Der zugrunde liegende Datentransport wird geschlossen.
- Die
RTCDataChannel.readyState
-Eigenschaft wird aufclosed
gesetzt. - Wenn der Transport mit einem Fehler geschlossen wurde,
wird dem
RTCDataChannel
einerror
-Ereignis gesendet, dessenname
aufNetworkError
gesetzt ist. - Ein
close
-Ereignis wird an den Kanal gesendet.
Syntax
close()
Parameter
Keine.
Rückgabewert
Keiner (undefined
).
Beispiele
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
Specification |
---|
WebRTC: Real-Time Communication in Browsers # dom-rtcdatachannel-close |
Browser-Kompatibilität
BCD tables only load in the browser