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的特性去分割字符串,再进行解析转换。

相关推荐
AI_CPU_GPU_Cloud5 分钟前
2026电子会计档案系统排名?浪潮、鼎捷、用友、金蝶、数凭横向比较
经验分享
Brilliantwxx16 分钟前
【Linux】 开发|Git 版本控制与 gdb/cgdb 调试
linux·笔记·git
xian_wwq26 分钟前
【学习笔记】工具设计,Agent 的手比大脑更容易出问题-8/16
笔记·学习·agent
晴天1629 分钟前
Agent 全栈学习笔记 1-Day14
数据库·笔记·学习
上海广测检测科技有限公司11 小时前
打印机CCC认证详解:产品范围界定与安全及电磁兼容测试要求解读
经验分享
今儿敲了吗15 小时前
CO——CPU
笔记
今儿敲了吗15 小时前
Python ——第三方包
笔记·python
吃着火锅x唱着歌15 小时前
Effective C++ 学习笔记 条款40 明智而审慎地使用多重继承
c++·笔记·学习
落知秋16 小时前
RUST中的trait是什么?
笔记·rust
xian_wwq16 小时前
【学习笔记】Prompt Engineering 没死,只是它不再够用了-2/16
笔记·学习·prompt