Socket通讯使用的坑-消息合并发送

背景

最近在做双焊接机的协同工作通讯时,发现不同方法发送的数据被Socket合并成一条消息发送出去了,这样在收时会报错了。两个方法发送的JSON数据内容是不一样的,由于两个发送时间的刚好是同一时间点触发,现像就是在客户端发现收到的数据是两个JSON对象的字符。这样在将字符串转成对像时就会报错了。

报错消息

接收服务端消息异常:Additional text encountered after finished reading JSON content: {. Path ', line 1, position 182.,reciveMsg:{"No":"1220240105223721641","ResponseNo":null,"DeviceId":1,"Type":12,"WorkpieceTrayCode":null,"IsSucceed":0,"IsStartWeld":0,"Msg":"单机模式","MsgTime":"2024-01-05T22:37:21.641626+08:00"}{"No":"11420240105223721641","ResponseNo":"2020240105223719970","DeviceId":2,"Type":14,"WorkpieceTrayCode":"","IsSucceed":0,"IsStartWeld":0,"Msg":"发送物料询问生产状态","MsgTime":"2024-01-05T22:37:21.6416869+08:00"}

解决方法

1.如果你对发送频率要求不高,可以在发送方法中加个Thread.Sleep(200);时间可以自己根据情况调整。

2.在客户端解析上下功夫。可以根据JSON的特性去分割字符串,再进行解析转换。

相关推荐
234710212721 小时前
4.18 学习笔记
软件测试·笔记·python·学习
xzal121 天前
python中,turtle基础知识笔记1
笔记·python·turtle
鱼鳞_1 天前
Java学习笔记_Day29(异常)
java·笔记·学习
九成宫1 天前
IT项目管理期末复习——Chapter 8 项目质量管理
笔记·项目管理·软件工程
Flittly1 天前
【SpringSecurity新手村系列】(3)自定义登录页与表单认证
java·笔记·安全·spring·springboot
Stella Blog1 天前
狂神Java基础学习笔记Day04
java·笔记·学习
一只机电自动化菜鸟1 天前
一建机电备考笔记(17) 常用设备—通用设备1(含考频+题型)
笔记·学习·职场和发展·生活·学习方法
bekote1 天前
笔记|数据库
数据库·笔记
深蓝海拓1 天前
基于QtPy (PySide6) 的PLC-HMI工程项目(十)框架初成的阶段总结
网络·笔记·python·学习·ui·plc
戏舟的嵌入式开源笔记1 天前
LVGL部件应用笔记(基于正点原子教程,持续更新)
笔记