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

相关推荐
jackson凌43 分钟前
【Java学习笔记】线程基础
java·笔记·学习
复业思维202401081 小时前
20250619周四:Atlassian
笔记
cwtlw1 小时前
Excel学习01
笔记·学习·其他·excel
小阳拱白菜3 小时前
Vue学习笔记
vue.js·笔记·学习
のハス5 小时前
吴恩达机器学习笔记:逻辑回归5
笔记·机器学习·逻辑回归
科技资讯快报10 小时前
声网对话式 AI:开启我的编程进阶之旅
经验分享
鸽子一号11 小时前
c#基础概念之进制
笔记
敦普水性工业漆13 小时前
敦普水漆无铬锌铝涂层:守护汽车4000颗紧固件的防锈方案
经验分享·笔记·汽车
NEWEVA__zzera2215 小时前
记录存储的使用
经验分享·单片机
LXL_2415 小时前
超子说物联网-MQTT_笔记1---通过EMQX搭建MQTT服务器
服务器·笔记·物联网