uniapp的websocket和c++的websocket服务器通讯
发送的数据和接受的数据表现形式不一样
这是前端发的
这是c++服务器接受到的
uniapp的websocket和c++的websocket服务器通讯
发送的数据和接受的数据表现形式不一样
这是c++服务器接受到的
引自免费微信小程序:皆我百晓生
在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数据,服务器端应当:
如果前端发送的确实是JSON格式数据,而服务器端无法正确解析,则需要检查C++代码中的数据接收和解析部分,确保进行了正确的解码操作。同时,也需要排除网络传输过程中数据损坏的可能性。