2012-09-01 18 views
8

Acabo de empezar a usar node.js, estoy ejecutando un servidor de nodos con sockets.io y necesito enviar un búfer de bytes al cliente.socket.io streaming de datos binarios

Entiendo que esto se puede hacer primero traduciendo el búfer de bytes a base64 y enviándolo, y luego traduciéndolo de nuevo en el lado del cliente. pero me preguntaba si hay una manera más elegante de obtener el flujo de bytes para el cliente.

+1

Creo que esta es una respuesta válida http://stackoverflow.com/a/24617425/950039. Amablemente Marque si está satisfecho, comente si no :) –

Respuesta

2

https://github.com/binaryjs/binaryjs puede ser una solución. la base 64 tiene ~ 30% de tamaño de sobrecarga, por lo que si necesita transferir una gran cantidad de datos se volverá ineficiente.

+1

He examinado binaryjs pero no puedo encontrar la manera de hacerlo funcionar con mi servidor socket.io. No quiero eliminar el código que ya escribí. – crimsonsky2005

1

Es difícil de usar binaryjs con socket.io. Try deliveryjs

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

que proporciona los medios de comunicación entre los clientes y el servidor a través de socket.io.

Sin embargo, este módulo también usa la conversión base64, que es un inconveniente.

+0

Ese enlace no ayuda en absoluto. –

4

Socket.IO 1.0 ya admite la transferencia de datos binarios. Por favor, eche un vistazo here. Puede usar Blob, ArrayBuffer y File.