socket.io streaming binary data

I have just started using node.js, I'm running a node server with sockets.io and i need to send a buffer of bytes to the client.

I understand that this can be done by first translating the byte buffer to base64 and sending that, then translating it back on the client side. but i was wondering if there is a more elegant way of getting the byte stream to the client.

https://github.com/binaryjs/binaryjs can be a solution. base 64 have ~30% of overhead size, so if you need to transfer large amount of data it will become inefficient.

There is also socket.io-stream https://github.com/nkzawa/socket.io-stream

Socket.IO 1.0 Now supports Binary data transfer. Please have a look here . You can use Blob, ArrayBuffer and File.

It is little difficult to use binaryjs with socket.io. Try deliveryjs

https://github.com/liamks/Delivery.js

which provides the means of communication between clients and server via socket.io.

However this module also uses the base64 conversion, which is a drawback.