SpringBoot连接MQTT服务器时因ClintID重复导致频繁掉线重连

场景

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位。

猜你喜欢

转载自blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/112859752