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

相关推荐
疯狂打码的少年1 小时前
【计算机网络】IPv6基础(特点、表示法、与IPv4对比)
网络·笔记·计算机网络
总线通信小百科1 小时前
车队管理终端选型:一体化边缘计算机如何替代工控机+CAN卡组合
经验分享
泡泡鱼(敲代码中)3 小时前
MySQL基础学习笔记:从数据模型到DDL全掌握
开发语言·数据库·笔记·学习·mysql
江湖人称菠萝包4 小时前
【Windows】《深入浅出Windows API程序设计:核心编程篇》笔记-Chapter4-进程
windows·笔记
今儿敲了吗5 小时前
03停用词过滤
笔记·python
秦哈哈6 小时前
【Hello Agents】学习笔记(二)
笔记·学习·microsoft
银空飞羽7 小时前
职型求职工具实测:把简历分析、岗位匹配和定向优化串成一条求职链路
人工智能·经验分享·面试·职场和发展·跳槽·求职招聘·创业创新
风早爽太7 小时前
Flutter 开发笔记:share_plus 分享插件
笔记·flutter
宵时待雨8 小时前
linux笔记归纳19:网络层协议IP
linux·网络·笔记·网络协议·tcp/ip
javgo.cn8 小时前
Markune:一个开源的 Local-first Markdown 工作区
笔记·编辑器