我之间有一个websocket连接 •Nodejs服务器(+ socket.io) •浏览器
从服务器向浏览器发出消息(来自Arduino的Udp消息)
udpSocket.on("message", function (msg, rinfo) {
for (i = 0; i < msg.length; i++) {
console.log(msg.readInt8(i));
}
console.log("");
io.sockets.emit('message', msg);
});
浏览器中的代码(index.html):
A) 我开始时:
socket.on('message', function(message) {
document.getElementById("ko1").innerHTML = message;
})
<p> Arduino sends: </p>
<p id="ko1"> <br>
浏览器中的结果:[object ArrayBuffer]
我的结论:信息即将传入,但必须以另一种方式处理。
B) 研究了解到我必须在数组缓冲区(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays)上使用DataView。我的代码:
socket.on('message', function(message) {
var uint8 = new Uint8Array(message);
document.getElementById("ko1").innerHTML = uint8[0];
})
结果:没有数据打印到浏览器
问题:我做错了什么?我也尝试了其他数据视图,但没有成功。这让我很生气。请帮忙。