场景
SpringBoot整合MQTT服务器实现消息的发送与订阅(推送消息与接收推送):
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/112394731
在上面使用SpringBoot进行连接MQTT服务器进行消息的发送与订阅的基础上。
在将SpringBoot项目打包成jar包并部署在服务器上后,本地再启动SpringBoot项目时后台
一直输出掉线重连。
注:
博客:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。
实现
经过思考,考虑到每个客户端连接时会设置一个ClientID,而这个客户端id是唯一的。
clientID全球唯一,两个相同的clientID同时连接IoT套件的话,先连接的那个会被强制断开。
所以本地的代码和服务器上的代码是使用的相同的ClientID,并且是连接的同一个MQTT服务器。
这就导致了频繁重连。
之前的clientID的设置在配置文件application.yml中
然后在代码中读取配置文件的clientID,将设置clientID的地方改为每次生成随机的字符串,但是记住长度不能太长,不能超过23位。