Javascript 如何将二进制数据从Node.js socket.io服务器发送到浏览器客户端?

Javascript 如何将二进制数据从Node.js socket.io服务器发送到浏览器客户端?,javascript,node.js,websocket,socket.io,socket.io-1.0,Javascript,Node.js,Websocket,Socket.io,Socket.io 1.0,我已经浏览了整个Socket.IO文档,但是,即使它们承诺它在那里,我也找不到一个简单、最简单的示例,说明如何在服务器/客户端之间发送二进制数据 它是如何完成的?事实上,它在文档中。Socket.io的当前文档如下所示: […]向由字符串名称标识的套接字发出事件。任何其他 可以包括参数。支持所有数据结构,包括缓冲区[…] 所以,如果你可以发送一个缓冲区,你可以发送二进制数据。您所要做的就是将数据打包到一个对象中 您可能需要从socket.io 1.0开始读取和发送二进制数据 官方文件中不清楚如何

我已经浏览了整个Socket.IO文档,但是,即使它们承诺它在那里,我也找不到一个简单、最简单的示例,说明如何在服务器/客户端之间发送二进制数据


它是如何完成的?

事实上,它在文档中。Socket.io的当前文档如下所示:

[…]向由字符串名称标识的套接字发出事件。任何其他 可以包括参数。支持所有数据结构,包括缓冲区[…]

所以,如果你可以发送一个缓冲区,你可以发送二进制数据。您所要做的就是将数据打包到一个对象中


您可能需要从socket.io 1.0开始读取和发送二进制数据

官方文件中不清楚如何发送和接收二进制数据。唯一的文件是:

var socket = new WebSocket('ws://localhost');
socket.binaryType = 'arraybuffer';
socket.send(new ArrayBuffer);
我建议您看看这个答案,在这里您可以找到服务器和客户端(javascript和java)代码实现的基本示例:

好的方面是,它也适用于Android!(如果你愿意的话)


干杯

啊,那就是我错过的。我找错了。那是自动的吗?如果我发送一个Float32Array,它将作为二进制文件,而不是序列化为JSON?这是一个如何将图像作为缓冲区从服务器发送并在客户端的HTML5画布上呈现的示例。@Viclib完成了吗?请分享。。!!!啊,我已经,我已经忘记了在这一点上,很抱歉没有更新。但据我记忆所及,您所要做的就是从Float32Array(或类似的)中获取一个缓冲区(类似于:
myData=newfloat32array([1,2,3,4]).buffer;
并通过
socket.io
发送,即,
socket.emit(“foo”,myData)
。它会自动将其视为二进制数据。然后,在另一端,您必须将其转换回:
socket.on(“foo”,function(data){data=new Float32Array(data);})
。虽然我是通过内存编写的,但我记得在博客文章中有一个关于发布
socket.io
1.0的示例。