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

相关推荐
新子y3 分钟前
【小白笔记】input() 和 print() 这两个函数
笔记·python
雾岛听蓝11 分钟前
C语言:使用顺序表实现通讯录
c语言·数据结构·经验分享·笔记·visualstudio
于顾而言3 小时前
【笔记】Comprehensive Rust语言学习
笔记·学习·rust
芥子沫3 小时前
Docker安装思源笔记&使用指南
笔记·docker·容器·思源笔记
递归不收敛3 小时前
三、检索增强生成(RAG)技术体系
人工智能·笔记·自然语言处理
im_AMBER4 小时前
React 06
前端·javascript·笔记·学习·react.js·前端框架
weixin_537217064 小时前
省考资源合集
经验分享
小蜗的房子5 小时前
MySQL学习之SQL语法与操作
数据结构·数据库·经验分享·sql·mysql·学习方法·数据库开发
autism_cx5 小时前
TCP/IP协议栈
服务器·网络·笔记·网络协议·tcp/ip·ios·osi
报错小能手5 小时前
C++笔记(面向对象)对于对象返回方式的讲解
笔记