将集成好mqtt的项目发布至阿里云服务器,设置了基本的连接参数之后mqtt会隔一段时间断开后,再重新连接,但是连接次数多了以后,会引起内存泄漏的问题
目前已分析到原因是,代码中设置了自动重连setAutomaticReconnect(false),但是在回调函数中又实现了监听客户端断开连接的监听(connectionLost),又在此处自定义了手动重连,二者都会执行,所以就会出现MqttException: Connect already in progress,这样的问题,此时底层的mqtt逻辑会在重连时阻塞线程,直到重连成功,才会释放资源,因此解决方案如下:
实现图一、图二中任意一种方案即可,二者不可得兼…