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


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

 

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

 

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

 

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

 

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

 

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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM