Lie_- 2024-02-29 16:02 采纳率: 0%
浏览 25
已结题

uniapp的websocket和c++的websocket服务器通讯 发送的数据和接受的数据表现形式不一样

uniapp的websocket和c++的websocket服务器通讯

发送的数据和接受的数据表现形式不一样

img


这是前端发的

img

这是c++服务器接受到的

  • 写回答

25条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-02-29 16:10
    关注
    获得0.30元问题酬金

    引自免费微信小程序:皆我百晓生

    在UniApp(基于Vue.js和原生渲染层开发的跨端应用框架)中使用Websocket与C++服务器通信时,由于前后端数据结构和解析方式的不同,确实可能出现发送和接收数据的表现形式不一致的情况。前端通常使用JSON格式封装数据,而后端C++服务器可能直接打印接收到的原始字节流,或者按照某种特定协议进行解析。

    前端发送的数据样例:

    data: {
      type: 1
    }
    

    这是一个典型的JSON格式数据,前端在发送时会将其序列化成字符串并通过WebSocket.send方法发送出去。

    C++服务器接收到的数据样例:

    2024/02/29 07:05:07:3383N:lws lc tag:上十WebSocket connection established
    WS CALLBACK RECEIVE sumrz>>>>>>>>>>>1 en:3>>>type:7108723 SLmrz>>>seekTime:0 sumrz>'/media/zzcommAYBERMAP1': No such file or directory S'camnot access INF0][1709190308.969347168]: Reading from serial port
    [1709190308.9698240007 Read: RS0C INFO]INFO[1709190308.970123072 RSC PERCENT:0
    

    这段文本看起来并不像是正确解析后的JSON数据,更像是服务器端的日志输出或者是对收到的原始字节流未经JSON解码的直接展示。

    为了保证C++服务器能正确地解析前端发送的JSON数据,服务器端应当:

    1. 接收到WebSocket数据后,首先确认其内容是否为JSON格式;
    2. 使用C++ JSON库(如nlohmann/json或其他类似库)对接收到的字符串进行解析;
    3. 解析完成后,提取出相应的字段进行处理。

    如果前端发送的确实是JSON格式数据,而服务器端无法正确解析,则需要检查C++代码中的数据接收和解析部分,确保进行了正确的解码操作。同时,也需要排除网络传输过程中数据损坏的可能性。

    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 3月8日
  • 创建了问题 2月29日

悬赏问题

  • ¥100 图像处理,如何优化使得清晰
  • ¥15 请求看看这个仿真电路哪里有问题?
  • ¥100 关于python拓展屏使用pyautogui.screenshot无法截图的问题
  • ¥15 有偿求答 无导出权限怎么快速导出企业微信微文档
  • ¥15 求解答,怎么数码管中这么加入闹钟或者传感器,这应该怎么加入相应的代码
  • ¥15 scottplot5
  • ¥30 想问问这个建模怎么编程没有思路
  • ¥15 关于imageENview(ImageEN)中新建图层并根据鼠标位置添加图标
  • ¥100 用两台电脑局域联网进行MT5的EA参数优化,但是连接不上,日志提示:
  • ¥15 FastAPI报错: AsyncSession不是有效Pydantic类型