作为ArrayBuffer发送的数据将被收到Blob

时间:2016-07-01 05:11:51

标签: javascript node.js websocket

我在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收到它。我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

就在我写完这个问题的时候,我碰巧找到了答案。根据{{​​3}},必须将binaryType属性设置为"blob""arraybuffer",并确定接收数据的格式。通过像这样更改客户端代码,

var sock = new WebSocket("<the server address>");
sock.binaryType = "arraybuffer";

现在,服务器的所有二进制数据都按照预期接收为ArrayBuffers。