美文网首页
MQTTClient 那些坑

MQTTClient 那些坑

作者: 咸蛋皮蛋的哥 | 来源:发表于2017-08-11 11:01 被阅读0次

    前段时间做一个智能路由器的项目,要求使用MQTT,研究了几个相关的框架,还是选择MQTTClient,因为他的版本更新比较快!

    项目应用场景

    本地连接路由器WiFi,本地MQTT通信,配置路由器过程中路由器会重启,待路由器重启成功之后MQTT自动连接。如果没有本地连接路由器就使用MQTT远程通信。

    项目中MQTT会有经常断开和自动连接的需求,在断开重连的时候各种崩溃,主要原因就是MQTTClient断开连接之后,某些类的数据没有释放完全,或者是对象内存释放时,所用内存并没有完全被擦除,仍有旧对象部分数据可用,重连的时候又使用到了这个类,导致crash。

    如下关闭了MQTTClient:

    但是马上重新连接就会crash:

    这里self已经为nil,但是线程还是会走到这里,导致奔溃。

    所以,我建立了两个MQTTClient管理的类,SQMQTTClientManager和SQMQTTClientLocationManager,一个管理远程通信,一个管理本地通信。这样可以解决本地与远程切换crash的问题。

    相关文章

      网友评论

          本文标题:MQTTClient 那些坑

          本文链接:https://www.haomeiwen.com/subject/dedlrxtx.html