This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

A interface RTCDataChannel representa um canal de rede que pode ser usado para transferências bidirecionais de dados arbitrários de ponto a ponto. Todo canal de dados está associado a RTCPeerConnection, e cada conexão de pares pode ter até um máximo teórico de 65,534 canais de dados (o limite real pode variar de navegador para navegador).

Para criar um canal de dados e pedir a um ponto remoto para se juntar a você, chame os metodos RTCPeerConnection's createDataChannel().  O interlocutor que está sendo convidado a trocar dados recebe um evento datachannel (que possui o tipo RTCDataChannelEvent) para informá-lo de que o canal de dados foi adicionado à conexão.

Properties

Also inherits properties from: EventTarget

binaryType [Translate]
The property binaryType on the RTCDataChannel interface is a DOMString which specifies the type of JavaScript object which should be used to represent binary data received on the RTCDataChannel. Values allowed by the WebSocket.binaryType property are also permitted here: "blob" if Blob objects are being used or "arraybuffer" if ArrayBuffer objects are being used. The default is "blob".
bufferedAmount Somente leitura [Translate]
The read-only RTCDataChannel property bufferedAmount returns the number of bytes of data currently queued to be sent over the data channel.
bufferedAmountLowThreshold [Translate]
The RTCDataChannel property bufferedAmountLowThreshold is used to specify the number of bytes of buffered outgoing data that is considered "low." The default value is 0.
id Somente leitura [Translate]
The read-only RTCDataChannel property id returns an ID number (between 0 and 65,534) which uniquely identifies the RTCDataChannel.
label Somente leitura [Translate]
The read-only RTCDataChannel property label returns a DOMString containing a name describing the data channel. These labels are not required to be unique.
maxPacketLifeTime Somente leitura [Translate]
The read-only RTCDataChannel property maxPacketLifeTime 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.
maxRetransmits Somente leitura [Translate]
The read-only RTCDataChannel property maxRetransmits returns the maximum number of times the browser should try to transmit a message before giving up when in unordered mode, as set when the data channel was created, or null, which indicates that there is no maximum.
negotiated Somente leitura [Translate]
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.
ordered Somente leitura [Translate]
The read-only RTCDataChannel property ordered 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.
protocol Somente leitura [Translate]
The read-only RTCDataChannel property protocol returns a DOMString 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).
readyState Somente leitura [Translate]
The read-only RTCDataChannel property readyState returns an enum of type RTCDataChannelState which indicates the state of the data channel's underlying data connection.
reliable Somente leitura [Translate]
The read-only RTCDataChannel property reliable indicates whether or not the data channel is reliable.
stream Somente leitura [Translate]
The deprecated (and never part of the official specification) read-only RTCDataChannel property stream returns an ID number (between 0 and 65,535) which uniquely identifies the RTCDataChannel.

Event handlers

Also inherits event handlers from: EventTarget

onbufferedamountlow [Translate]
The RTCDataChannel.onbufferedamountlow property is an EventHandler which specifies a function the browser calls when the bufferedamountlow event is sent to the RTCDataChannel. This event, which is represented by a simple Event object, is sent when the amount of data buffered to be sent falls to or below the threshold specified by the channel's bufferedAmountLowThreshold.
onclose [Translate]
The RTCDataChannel.onclose property is an EventHandler which specifies a function to be called by the browser when the close event is received by the RTCDataChannel. This is a simple Event which indicates that the data channel has closed down.
onerror [Translate]
The RTCDataChannel.onerror property is an EventHandler which specifies a function to be called when the error event is received. When an error occurs on the data channel, the function receives as input an ErrorEvent object describing the error which occurred.
onmessage [Translate]
The RTCDataChannel.ommessage property stores an EventHandler which specifies a function to be called when the message event is fired on the channel. This event is represented by the MessageEvent interface. This event is sent to the channel when a message is received from the other peer.
onopen [Translate]
The RTCDataChannel.onopen property is an EventHandler which specifies a function to be called when the open event is fired; this is a simple Event which is sent when the data channel's underlying data transport—the link over which the RTCDataChannel's messages flow—is established or re-established.

Methods

Also inherits methods from: EventTarget

close() [Translate]
The RTCDataChannel.close() method closes the RTCDataChannel. Either peer is permitted to call this method to initiate closure of the channel.
send() [Translate]
The send() method of the RTCDataChannel interface sends data across the data channel to the remote peer.

Exemplo

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");
};

Especificações

Especificação Status Comentário
WebRTC 1.0: Real-time Communication Between Browsers
The definition of 'RTCDataChannel' in that specification.
Rascunho atual Especificação inicial

Compatibilidade do navegador

Característica Chrome Firefox (Gecko) Internet Explorer Opera Safari
Suporte básico (Yes) 22 (22) [1] Não suportado (Yes) ?
onbufferedamountlow 56 Não suportado Não suportado 43 Não suportado
Característica Android Webview Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support 29 29 22.0 (22) [1] Não suportado (Yes) Não suportado
onbufferedamountlow 56 56 Não suportado ? 43 ?

[1] A interface é chamada DataChannel e não RTCDataChannel no Firefox. No entanto, uma ligação foi implementada desde o Firefox 24 para que qualquer um dos nomes funcione.

Veja também

Etiquetas do documento e colaboradores

 Colaboradores desta página: Lavyk
 Última atualização por: Lavyk,