首页 > 其他 > 详细

单例模式MQTT服务为什么会重复收到消息

时间:2020-01-10 20:10:42      阅读:473      评论:0      收藏:0      [点我收藏+]

一开始,我写的MQTT并是不单例模式,用到申请,用完销毁。

 

后来有一次需要转发300个设备的消息,cpu直接100%了,然后改为单例模式,这里顺便插一句,对方鉴权用的设备ID做用户名,然后对方收的永远只有第一个设备的数据(一开始没发现是第一个),于是这个问题断断续续绕了快一周(主要是大家手上都有事,不一定都有空)。

 

所以这里其实是记录两个问题,第一个就是 单例模式的MQTT消息丢失,只有少部分接收成功,很有可能是鉴权导致的。

 

第二个MQTT为什么会收到重复的数据,是因为习惯了之前的写法,在单例模式的时候,每写一个发布,就顺便写一个接收在那,忘记了事件会叠加,然后收到数据后,有几个地方绑了接收事件,就重复几遍数据。

 

正确的姿势是,初始化的时候,声明一个接收,然后就不管了,需要发布的地方直接发布,不用管接收

 

原谅我日志越来越粗糙,实在是没有空

单例模式MQTT服务为什么会重复收到消息

原文:https://www.cnblogs.com/bamboo-zhang/p/12177404.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!