我正在与Mozilla Europe合作开展一个项目.在这个项目中,我使用了由Worlize(服务器端)和Mozilla(客户端)的Nodeocket,Node.js尝试将文件从客户端上传到服务器.
我目前的目标是将一个arraybuffer文件发送到服务器.创建arraybuffer并发送它很好.
但是我的服务器告诉我这arraybuffer是一条utf8消息而不是二进制消息.
我误解了什么吗?如果没有,我该如何纠正?
客户端:
reader = new FileReader();
reader.readAsArrayBuffer(file);
reader.onload = function(e) {
connection.send(e.target.result);
};
Run Code Online (Sandbox Code Playgroud)
服务器端:
ws.on('message', function(message,flags) {
if (!flags.binary) {
//some code
}
else {
console.log('It\'s a binary');
}
Run Code Online (Sandbox Code Playgroud)
我也尝试Blob过,同样的结果.二进制部分是不可见的.
如何将通过 WebSocket 二进制消息接收到的 blob 转换为 Float32Array(或其他类型化数组:Uint32、Uint16 等)。
我尝试使用 FileReader,但“结果”需要很长时间才能可用。结果必须在下一个接收到的 WebSocket 消息中可用。
如果我可以让 WebSocket 接收 ArrayBuffer 而不是 Blob,那就行了。我怎样才能做到这一点?