RTCDataChannel
The RTCDataChannel interface represents a network channel which can be used for bidirectional peer-to-peer transfers of arbitrary data. Every data channel is associated with an RTCPeerConnection, and each peer connection can have up to a theoretical maximum of 65,534 data channels (the actual limit may vary from browser to browser).
To create a data channel and ask a remote peer to join you, call the RTCPeerConnection's createDataChannel() method. The peer being invited to exchange data receives a datachannel event (which has type RTCDataChannelEvent) to let it know the data channel has been added to the connection.
Properties
Also inherits properties from EventTarget.
binaryType-
Is a string specifying the type of object that should be used to represent binary data received on the
RTCDataChannel. Values are the same as allowed on theWebSocket.binaryTypeproperty:blobifBlobobjects are being used, orarraybufferifArrayBufferobjects are being used. The default isblob. bufferedAmountRead only-
Returns the number of bytes of data currently queued to be sent over the data channel.
bufferedAmountLowThreshold-
Specifies the number of bytes of buffered outgoing data that is considered "low". The default value is 0.
idRead only-
Returns an ID number (between 0 and 65,534) which uniquely identifies the
RTCDataChannel. labelRead only-
Returns a string that contains a name describing the data channel. These labels are not required to be unique.
maxPacketLifeTimeRead only-
Returns the amount of time, in milliseconds, the browser is allowed to take to attempt to transmit a message, as set when the data channel was created, or
null. maxRetransmitsRead only-
Returns the maximum number of times the browser should try to retransmit a message before giving up, as set when the data channel was created, or
null, which indicates that there is no maximum. negotiatedRead only-
Indicates whether the
RTCDataChannel's connection was negotiated by the Web app (true) or by the WebRTC layer (false). The default isfalse. orderedRead only-
Indicates whether or not the data channel guarantees in-order delivery of messages; the default is
true, which indicates that the data channel is indeed ordered. protocolRead only-
Returns a string containing the name of the subprotocol in use. If no protocol was specified when the data channel was created, then this property's value is the empty string (
""). readyStateRead only-
Returns a string which indicates the state of the data channel's underlying data connection. It can have on of the following values:
connecting,open,closing, orclosed.
Event handlers
Also inherits event handlers from EventTarget.
onbufferedamountlow-
Is an event handler which specifies a function the browser calls when the
bufferedamountlowevent is sent to the data channel. onclose-
Is an event handler which specifies a function to be called by the browser when the
closeevent is received by the data channel. onclosing-
Is an event handler which specifies a function to be called by the browser when the
closingevent is received by the data channel. onerror-
Is an event handler which specifies a function to be called when the
errorevent is received. onmessage-
Is an event handler which specifies a function to be called when the
messageevent is fired on the channel. onopen-
Is an event handler which specifies a function to be called when the
openevent is fired on the
Obsolete properties
Methods
Also inherits methods from EventTarget.
close()-
Closes the
RTCDataChannel. Either peer is permitted to call this method to initiate closure of the channel. send()-
Sends data across the data channel to the remote peer.
Events
bufferedamountlow-
Sent when the number of bytes of data in the outgoing data buffer falls below the value specified by
bufferedAmountLowThreshold. Also available as theonbufferedamountlowevent handler property. close-
Sent when the underlying data transport closes. Also available as the
oncloseevent handler property. closing-
Sent when the underlying data transport is about to start closing. Also available as the
onclosingevent handler property. error-
Sent when an error occurs on the data channel. Also available as the
onerrorevent handler property. message-
Sent when a message has been received from the remote peer. The message contents can be found in the event's
dataproperty. Also available as theonmessageevent handler property. open-
Sent when the data channel is first opened, or when an existing data channel's underlying connection re-opens. Also available as the
onopenevent handler property.
Data format
The underlying data format is defined by the IEEE draft specification draft-ietf-mmusic-sctp-sdp. The current format specifies its protocol as either "UDP/DTLS/SCTP" (UDP carrying DTLS carrying SCTP) or "TCP/DTLS/SCTP" (TCP carrying DTLS carrying SCTP). Older browsers may only specify "DTLS/SCTP".
Example
var pc = new RTCPeerConnection();
var dc = pc.createDataChannel("my channel");
dc.onmessage = function (event) {
console.log("received: " + event.data);
};
dc.onopen = function () {
console.log("datachannel open");
};
dc.onclose = function () {
console.log("datachannel close");
};
Specifications
| Specification |
|---|
| WebRTC 1.0: Real-Time Communication Between Browsers (WebRTC 1.0) # rtcdatachannel |
Browser compatibility
BCD tables only load in the browser