我在nodejs中使用ws模块作为WebSocket服务器。在服务器端,我有一个Uint8Array
,我使用非常类似的代码发送给客户端,
var data = new Uint8Array([1, 2, 3, 4, 5]);
clientSock.send(data, {
binary: true
});
但是,在客户端(最新的Chrome和Firefox),数据都会被收到Blob
个对象。我知道我可以使用FileReader API将其处理回Uint8Array
。但我想首先以ArrayBuffer
收到它。我怎么能这样做?
答案 0 :(得分:1)
就在我写完这个问题的时候,我碰巧找到了答案。根据{{3}},必须将binaryType
属性设置为"blob"
或"arraybuffer"
,并确定接收数据的格式。通过像这样更改客户端代码,
var sock = new WebSocket("<the server address>");
sock.binaryType = "arraybuffer";
现在,服务器的所有二进制数据都按照预期接收为ArrayBuffers。