在JavaScript web套接字中从服务器端返回一个JSON数组对象



我是WebSockets的新手,正在从客户端向服务器端发送数据,并返回到客户端进行基本的聊天应用程序。我可以将数据发送到服务器端并使用JSON解析它。解析,但当试图将其返回到客户端,我得到一个错误时,试图解析它。错误是"在JSON中位置1"我相信这意味着它不是一个JSON对象,我试图解析。但我不明白为什么它在发送回客户端时发生了变化。

下面是将数据发送到服务器端的客户端脚本:
var userMessage = messageBox.value;
var userId = user.value;

ws.send(JSON.stringify({
text: userMessage,
id: userId
}));

捕获它并将其发送回客户端的服务器端脚本:

ws.on('message', function incoming(data) {
client.send(data);
})

然后回到客户端,我捕获返回的数据并将其发送给一个函数以显示,如下所示:

function showMessage(data) {
const obj = JSON.parse(data);
const textMessage = obj.text;
console.log(textMessage);
}
ws.onmessage = ({ data }) => showMessage(data);

根据您的调试日志,它看起来像是一个缓冲区。尝试在您的对象上使用.toString()方法,然后在客户端执行JSON.parse