场景
在上面使用SpringBoot进行连接MQTT服务器进行消息的发送与订阅的基础上。
在将SpringBoot项目打包成jar包并部署在服务器上后,本地再启动SpringBoot项目时后台
一直输出掉线重连。
注:
实现
经过思考,考虑到每个客户端连接时会设置一个ClientID,而这个客户端id是唯一的。
clientID全球唯一,两个相同的clientID同时连接IoT套件的话,先连接的那个会被强制断开。
所以本地的代码和服务器上的代码是使用的相同的ClientID,并且是连接的同一个MQTT服务器。
这就导致了频繁重连。
之前的clientID的设置在配置文件application.yml中
然后在代码中读取配置文件的clientID,将设置clientID的地方改为每次生成随机的字符串,但是记住长度不能太长,不能超过23位。