Websocket 8.5 向服务器发送“<Buffer>”。如何将服务器上的数据转换为JSON?
Websocket 8.5 sends `<Buffer>` to server. How to convert data on Server to JSON?
我正在测试 websocket 连接。我想从客户端发送 JSON 对象到服务器:
const WebSocket = require('ws');
const wss = new WebSocket.Server({port: 8082});
wss.on("connection", (ws) => {
console.log('server is connected');
ws.on("message", (mesg) => {
const a = mesg.toString();
console.log(a);
});
ws.on("close", () => {
console.log("Client has disconnected!");
});
});
在服务器端:
console.log(mesg)
returns <Buffer>
console.log(a)
returns object Object]
JSON.parse(a)
抛出错误信息。
我很茫然。我究竟做错了什么?谢谢!
问题出在客户端。通过套接字发送时,您没有序列化 JSON。
在发送之前在客户端添加对 JSON.stringify()
的调用,它应该可以工作。
在服务器上,只需使用 JSON.parse(mesg.toString())
将缓冲区输出为字符串并将 JSON 反序列化为对象即可。
我正在测试 websocket 连接。我想从客户端发送 JSON 对象到服务器:
const WebSocket = require('ws');
const wss = new WebSocket.Server({port: 8082});
wss.on("connection", (ws) => {
console.log('server is connected');
ws.on("message", (mesg) => {
const a = mesg.toString();
console.log(a);
});
ws.on("close", () => {
console.log("Client has disconnected!");
});
});
在服务器端:
console.log(mesg)
returns <Buffer>
console.log(a)
returns object Object]
JSON.parse(a)
抛出错误信息。
我很茫然。我究竟做错了什么?谢谢!
问题出在客户端。通过套接字发送时,您没有序列化 JSON。
在发送之前在客户端添加对 JSON.stringify()
的调用,它应该可以工作。
在服务器上,只需使用 JSON.parse(mesg.toString())
将缓冲区输出为字符串并将 JSON 反序列化为对象即可。