RTCDataChannel: close event
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.
Theclose event is sent to theonclose event handler on anRTCDataChannel instance when the data transport for the data channel has closed. Before any further data can be transferred usingRTCDataChannel, a new 'RTCDataChannel' instance must be created.
This event is not cancelable and does not bubble.
In this article
Syntax
Use the event name in methods likeaddEventListener(), or set an event handler property.
addEventListener("close", (event) => { })onclose = (event) => { }Event type
A genericEvent.
Examples
This example sets up a handler for theclose event for theRTCDataChannel nameddc; its responsibility in this example is to update user interface elements to reflect that there is no longer an ongoing call, and to allow a new call to be started.
dc.addEventListener("close", (ev) => { messageInputBox.disabled = true; sendButton.disabled = true; connectButton.disabled = false; disconnectButton.disabled = true;});All this code does in response to receiving theclose event is to disable an input box and its "Send" button, and to enable the button used to start a call (while disabling the one that ends a call).
You can also use theonclose event handler property to set a handler forclose events:
dc.onclose = (ev) => { messageInputBox.disabled = true; sendButton.disabled = true; connectButton.disabled = false; disconnectButton.disabled = true;};Specifications
| Specification |
|---|
| WebRTC: Real-Time Communication in Browsers> # event-datachannel-close> |
| WebRTC: Real-Time Communication in Browsers> # dom-rtcdatachannel-onclose> |
Browser compatibility
See also
- WebRTC API
- A simple RTCDataChannel example
- Related events:
open,message, anderror