socket node nkzawa example ejemplo java android node.js socket.io binary

java - node - ¿Cómo enviar datos binarios con socket.io?



socket.io java example (1)

así que he estado teniendo problemas para enviar datos binarios con socket.io en node.js (cliente Js y cliente Android).

No hay mucha información en:

http://socket.io/blog/introducing-socket-io-1-0/

http://socket.io/get-started/chat/

Necesito usar socket io para enviar una matriz binaria, que creo y llevo.

el único código que dan es el siguiente:

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

Mi respuesta está abajo.


Finalmente lo tengo trabajando con JS y Android (Java), así que decidí compartirlo con ustedes.

Comencemos con el Código de Servidor: (Nodo js)

var http = require(''http''); var app = http.createServer(function ejecute(request, response){}); var io = require(''socket.io'').listen(app); io.on(''connection'', function(socket) { socket.on(''message'', function(data){ console.log("recieved data:"); console.log(data); var bufArr = new ArrayBuffer(4); var bufView = new Uint8Array(bufArr); bufView[0]=6; bufView[1]=7; bufView[2]=8; bufView[3]=9; socket.emit(''message'',bufArr); }); }); app.listen(3000);

Pasemos al cliente de Javascript

var socket = io("http://localhost:3000"); socket.emit(''message'', ''hola from js client''); socket.on(''message'', function(msg){ var bufView = new Uint8Array(msg); console.log(msg) });

Y, finalmente, demostrémosle al cliente de Android (java):

final Socket socket = IO.socket("http://localhost:3000",opts); socket.on(Socket.EVENT_CONNECT, new Emitter.Listener() { @Override public void call(Object... args) { socket.emit("message","hello from java"); } }); socket.on("message", new Emitter.Listener() { @Override public void call(Object... args) { byte[] bytearray = (byte[])args[0]; //received bytes for (byte b : bytearray) { System.out.println("byte"+b); } } }); socket.on(Socket.EVENT_DISCONNECT, new Emitter.Listener() { @Override public void call(Object... args) {} });

Espero que sea útil para todos ustedes. ¡Aclamaciones!