The property binaryType on the RTCDataChannel interface is a string which specifies the type of 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.

When a binary message is received on the data channel, the resulting message event's MessageEvent.data property is an object of the type specified by the binaryType.


var type = aDataChannel.binaryType;

aDataChannel.binaryType = type;


A string that can have one of these values:


Received binary messages' contents will be contained in Blob objects.


Received binary messages' contents will be contained in ArrayBuffer objects.


This code configures a data channel to receive binary data in ArrayBuffer objects, and establishes a listener for message events which constructs a string representing the received data as a list of hexadecimal byte values.

var dc = peerConnection.createDataChannel("Binary");
dc.binaryType = "arraybuffer";

dc.onmessage = function(event) {
  let byteArray = new Uint8Array(event.data);
  let hexString = "";

  byteArray.forEach(function(byte) {
    hexString += byte.toString(16) + " ";


WebRTC 1.0: Real-Time Communication Between Browsers
# dom-datachannel-binarytype

Browser compatibility

BCD tables only load in the browser

See also