Web/API/RTCDataChannel/binaryType

From Get docs

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


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

Syntax

var type = aDataChannel.binaryType;

aDataChannel.binaryType = type; 

Value

A DOMString that can have one of these values:

"blob"
Received binary messages' contents will be contained in Blob objects.
"arraybuffer"
Received binary messages' contents will be contained in ArrayBuffer objects.

Example

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

Specifications

Specification Status Comment
WebRTC 1.0: Real-time Communication Between BrowsersThe definition of 'RTCDataChannel.binaryType' in that specification. Candidate Recommendation Initial specification.

Browser compatibility

Update compatibility data on GitHub

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet

binaryType

Experimental'

Chrome

Full support Yes

Edge

Full support ≤79

Firefox

Full support 18

IE

No support No

Opera

Full support Yes

Safari

Full support Yes

WebView Android

Full support 4.4

Chrome Android

Full support 29

Firefox Android

Full support 18

Opera Android

Full support Yes

Safari iOS

No support No

Samsung Internet Android

Full support 2.0

Legend

Full support  
Full support
No support  
No support
Experimental. Expect behavior to change in the future.'
Experimental. Expect behavior to change in the future.


See also