This is an experimental technology
Because this technology's specification has not stabilized, check the compatibility table for usage in various browsers. Also note that the syntax and behavior of an experimental technology is subject to change in future versions of browsers as the specification changes.

This page is not complete.

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".

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 DOMString 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) + " ";


Specification Status Comment
WebRTC 1.0: Real-time Communication Between Browser
The definition of 'RTCDataChannel.binaryType' in that specification.
Working Draft Initial specification.

Browser compatibility

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support 28 [2] 22 (22) [1] No support (Yes) ?
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support 28 [2] ? 22.0 (22) No support ? ?

[1] The interface is called DataChannel and not RTCDataChannel in Firefox; however, a binding was added in Firefox 24 which allows either name to be used.

[2] Chrome currently only supports "arraybuffer"; "blob" is not yet supported.

See also

Document Tags and Contributors

 Contributors to this page: Sheppy, kalitine, teoli
 Last updated by: Sheppy,