我是WebSockets新手,正在为一个基本的聊天应用程序从客户端向服务器端发送数据,然后再返回客户端.我可以将数据发送到服务器端,并用JSON很好地解析它.但是当试图将其返回到客户端时,我在试图解析它时出错.错误是"JSON中位置1处的意外令牌o",我认为这意味着我试图解析的不是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);

推荐答案

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

Javascript相关问答推荐

Math.random超出了最大调用堆栈

如果使用React Select ,如何将CSS类添加到元素中?

如何在加载的元数据上使用juserc和await中获得同步负载?

基于每个索引迭代嵌套对象

如何修复循环HTML元素附加函数中的问题?

将2D数组转换为图形

在react js中使用react—router—dom中的Link组件,分配的右侧不能被 destruct ''

为什么当我解析一个promise时,输出处于挂起状态?

显示图—如何在图例项上添加删除线效果?

如何将Cookie从服务器发送到用户浏览器

如何在ASP.NET JavaScript中使用Google Charts API仅对绘制为负方向的条形图移动堆叠条形图标签位置

使用ThreeJ渲染的形状具有抖动/模糊的边缘

在浏览器中触发插入事件时检索编码值的能力

为什么客户端没有收到来自服务器的响应消息?

钛中的onClick事件需要在两次点击之间等待几秒钟

在VS代码上一次设置多个变量格式

如果没有页面重新加载Angular ,innerHTML属性绑定不会更新

Google脚本数组映射函数横向输出

如何在Java脚本中对数据进行签名,并在PHP中验证签名?

为什么我看到的是回复,而不是我的文档?