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 Januar 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.readyStatewird aufclosinggesetzt.- 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 aufclosedgesetzt. - Wenn der Transport mit einem Fehler geschlossen wurde,
wird dem
RTCDataChanneleinerror-Ereignis gesendet, dessennameaufNetworkErrorgesetzt ist. - 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
| Specification |
|---|
| WebRTC: Real-Time Communication in Browsers> # dom-rtcdatachannel-close> |
Browser-Kompatibilität
Loading…