javascript - 网络套接字 : String and Blob in single send message

标签 javascript websocket

我需要在单个 Web 套接字消息中发送带有 blob 数据的消息类型。

var socket = new WebSocket('ws://somedomain.com/data');

// just pseudocode
// I know that only DOMString|ArrayBuffer|Blob types are supported
socket.send({ type: 'someMessageType', data: someBlobData });

最好的方法是什么?首先想到的是使用JSON.stringify。但我认为它相当大地增加了消息长度。也许有更好的方法?

最佳答案

您可以使用 FileReader 将 blob 转换为 base64 字符串。这就是你可以在 Dart 中做到的方式。对不起,我不知道JS。

final FileReader reader = new FileReader();
reader.onLoadEnd.listen((e) {
    print(reader.result);
    socket.send({ type: 'someMessageType', data: reader.result });
});
reader.readAsDataUrl(file);

关于javascript - 网络套接字 : String and Blob in single send message,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21572151/

相关文章:

kotlin - 如何从 Ktor 中的routing() block 外部触发 websockets 消息?

html - 如何从阻塞操作发送 WebSocket 事件? (需要设计建议)

python - Binance python websocket - 无响应

javascript - 加载脚本后调用javascript函数

javascript - 如何将上传的图像应用于背景图像?

javascript - 带函数参数的函数

javascript - Demeteorizer编译meteor app并导致WebSocket连接错误?

javascript - 为什么 CSS 在本地和远程网站上的工作方式不同?

javascript - 从 vue-cli 3 : Adding script tags to App. vue 将 Vuetify 添加到项目模板会破坏应用程序吗?

node.js - 如何配置 nginx 将 websocket 转发到不同的进程