通过二进制套接字发送Uint16Array表单浏览器到node.js

我想通过一个二进制套接字从浏览器发送types化数组( Uint16Array )到node.js,但是当我在节点中接收它们时,我得到了不连贯的值。 我读了大量的文档,但有一些我不明白…

这是浏览器端代码:

 var ws = new WebSocket('ws://127.0.0.1:8080'); ws.binaryType = "arraybuffer"; var message = new Uint16Array(3); message[0] = 123; message[1] = 456; message[2] = 789; ws.onopen = function() { ws.send(message.buffer); }; 

这是服务器代码(我使用https://github.com/einaros/ws ):

  var WebSocketServer = require('ws').Server; var wss = new WebSocketServer({port: 8080}); wss.on('connection', function(ws) { ws.on('message', function(buffer, flags) { var message = new Uint16Array(buffer); console.log(message[0]); // 123 console.log(message[1]); // 0 console.log(message[2]); // 200 }); }); 

你有什么想法,这种变化可能来自哪里? 谢谢大家 !

迪米特里