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