web-dev-qa-db-fra.com

Comment envoyer des données binaires d'un serveur Node.js socket.io à un client de navigateur?

J'ai parcouru l'intégralité des documents Socket.IO, mais, même s'ils promettent que c'est le cas, je ne trouve pas d'exemple simple et minimal de la façon dont on enverrait des données binaires entre serveur/client.

Comment est-il fait?

16
MaiaVictor

C'est en fait dans la documentation. La documentation actuelle pour Socket.io dit sous Socket.emit :

[...] Emet un événement vers le socket identifié par le nom de la chaîne. Tous les autres paramètres peuvent être inclus. Toutes les infrastructures de données sont prises en charge, y compris [...]

Donc, si vous pouvez envoyer un tampon, vous pouvez envoyer des données binaires. Tout ce que vous avez à faire est de regrouper vos données dans un objet Buffer .

Vous pouvez lire Socket.io Binary Support et Envoi et réception de binaires

13
Edwin Dalorzo

À partir de socket.io 1.0, il est possible d'envoyer des données binaires. http://socket.io/blog/introducing-socket-io-1-0/

Cependant, la manière d'envoyer et de recevoir des données binaires n'est pas claire dans la documentation officielle. La seule documentation est:

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

Je vous suggère de jeter un œil à cette réponse, où vous pouvez trouver un exemple de base avec l'implémentation de code pour le serveur et le client (javascript et Java aussi)):

Comment envoyer des données binaires avec socket.io?

La bonne partie est qu'il fonctionne également sur Android! (si vous le souhaitez)

À votre santé

3
chelo_c