我正在使用ws Nodejs 中的 WebSocket 服务器模块。在服务器端,我有一个 Uint8Array
,我使用非常类似的代码将其发送到客户端,
var data = new Uint8Array([1, 2, 3, 4, 5]);
clientSock.send(data, {
binary: true
});
但是,在客户端(最新的 Chrome 和 Firefox),数据作为 Blob
对象接收。我知道我可以使用 FileReader API 将其处理回 Uint8Array
。但我首先希望将其作为 ArrayBuffer 接收。我怎样才能做到这一点?
最佳答案
当我写完这个问题时,我碰巧自己找到了答案。根据MDN documentation for WebSocket
,有一个 binaryType
属性必须设置为 "blob"
或 "arraybuffer"
,它决定了收到数据。通过像这样更改客户端代码,
var sock = new WebSocket("<the server address>");
sock.binaryType = "arraybuffer";
现在,正如预期的那样,来自服务器的所有二进制数据都作为 ArrayBuffer 接收。
关于javascript - 作为 ArrayBuffer 发送的数据被作为 Blob 接收,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38137494/