RTCDataChannel.readyState
The read-only RTCDataChannel
property readyState
returns a string which indicates the state of the data channel's underlying data connection.
Syntax
var state = aDataChannel.readyState;
Values
A string indicating the current state of the underlying data transport, which is one of the following values:
connecting
-
The user agent (browser) is in the process of creating the underlying data transport; this is the state of a new
RTCDataChannel
after being created byRTCPeerConnection.createDataChannel()
, on the peer which started the connection process. open
-
The underlying data transport has been established and data can be transferred bidirectionally across it. This is the default state of a new
RTCDataChannel
created by the WebRTC layer when the remote peer created the channel and delivered it to the site or app in adatachannel
event. closing
-
The process of closing the underlying data transport has begun. It is no longer possible to queue new messages to be sent, but previously queued messages may still be send or received before entering the
closed
state. closed
-
The underlying data transport has closed, or the attempt to make the connection failed.
Example
var dataChannel = peerConnection.createDataChannel("File Transfer"); var sendQueue = []; function sendMessage(msg) { switch(dataChannel.readyState) { case "connecting": console.log("Connection not open; queueing: " + msg); sendQueue.push(msg); break; case "open": sendQueue.forEach((msg) => dataChannel.send(msg)); break; case "closing": console.log("Attempted to send message while closing: " + msg); break; case "closed": console.log("Error! Attempt to send while connection closed."); break; } }
Specifications
Specification |
---|
WebRTC 1.0: Real-Time Communication Between Browsers (WebRTC 1.0) # dom-datachannel-readystate |
Browser compatibility
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Chrome | Edge | Firefox | Internet Explorer | Opera | Safari | WebView Android | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | |
readyState |
24 |
79 |
22 |
No |
15 |
11 |
≤37 |
25 |
22 |
14 |
11 |
1.5 |
See also
© 2005–2021 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/RTCDataChannel/readyState