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

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日

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀