RTCDataChannel: negotiated property

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.

The read-only RTCDataChannel property negotiated indicates whether the RTCDataChannel's connection was negotiated by the Web app (true) or by the WebRTC layer (false). The default is false.

See Creating a data channel for further information about this property.

Value

true if the RTCDataChannel's connection was negotiated by the Web app itself; false if the negotiation was handled by the WebRTC layer. The default is false.

Example

The code snippet below checks the value of negotiated; if it's true, a function called shutdownRemoteChannel() is called with the channel's id; presumably this would be implemented to transmit a shutdown signal to the remote peer prior to terminating the connection.

js
if (dataChannel.negotiated) {
  shutdownRemoteChannel(dataChannel.id);
}

Specifications

Specification
WebRTC: Real-Time Communication in Browsers
# dom-datachannel-negotiated

Browser compatibility

desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
negotiated

See also