javascript - 作为 ArrayBuffer 发送的数据被作为 Blob 接收

标签 javascript node.js websocket

我正在使用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/

相关文章:

php - 绑定(bind) jQuery 网格?

javascript - 如何将文本换行到每行数量相等的两行上?

mysql - 如何使用 knex 使用 "Insert ... ON DUPLICATE KEY UPDATE"添加多行

node.js - 如何基于 GitHub webhook 自动化部署 docker?

model-view-controller - node.js 的 MVC 框架的最新技术水平?

nginx - 找不到 RabbitMQ WebSocket 404

带有订阅的 Javascript WebSockets

javascript - 单击按钮时如何更改图像

spring - 如何使用和自定义MessageConversion(Spring websocket客户端)

javascript - primefaces 更新页面的 <head> 内容