chelo_c chelo_c - 1 year ago 237
Java Question

How to send binary data with

so I have been having real trouble sending binary data with in node.js (Js client and Android client).

There is not much information neither in:

I need to use socket io to send a binary array, that I create and fill.

the only code they give is the following:

var socket = new WebSocket('ws://localhost');
socket.binaryType = 'arraybuffer';
socket.send(new ArrayBuffer);

My answer is bellow.

Answer Source

Finally I have it working with JS and Android ( Java ), so I decided to share it with you guys.

Let's start with the Server Code: (Node js)

var http = require('http');

var app = http.createServer(function ejecute(request, response){});
var io = require('').listen(app);

io.on('connection', function(socket) {
        socket.on('message', function(data){
            console.log("recieved data:");

            var bufArr = new ArrayBuffer(4);
            var bufView = new Uint8Array(bufArr);

Lets jump on to the Javascript client

  var socket = io("http://localhost:3000");
  socket.emit('message', 'hola from js client');

  socket.on('message', function(msg){
    var bufView = new Uint8Array(msg);

And finally, let's show the Android (java) client:

    final Socket socket = IO.socket("http://localhost:3000",opts);

    socket.on(Socket.EVENT_CONNECT, new Emitter.Listener() {
        public void call(Object... args) {
            socket.emit("message","hello from java");

    socket.on("message", new Emitter.Listener() {

        public void call(Object... args) {
            byte[] bytearray = (byte[])args[0]; //received bytes

            for  (byte b : bytearray) {


   socket.on(Socket.EVENT_DISCONNECT, new Emitter.Listener() {
    public void call(Object... args) {}

I hope it is useful to you all. Cheers!