mqtt应用问题

1、mqtt程序主动断开后,无法再次收到消息

解决办法:
方法一、在emqx服务端中主动踢除客户端

方法二、代码里

面将session设置为true,每次断开会清除会话

2、正在进行过多的发布(32202)
解决办法:
方法一、默认支持一次新发送10条消息,最大是1000,可以设置
//options.setMaxInflight(1000);
方法二、不确定是否起作用

原始写法

 更改后写法

 3、连接服务器超时
说明:有一个生产者在向topicA发送数据,如果消费者第一次启动程序,订阅了一个topicA,此次能正常消费,但是第二次启动,就报连接服务器超时,表现出来是同一个主题不能被同一个客户端订阅两次,但是做了测试后,第一次启动的时候就订阅两次,就可以启动成功)

原始代码:

解决方法:
 方法一、设置重连机制
options.setAutomaticReconnect(true);
但是遇到新的问题,如果在emqx上主动踢除后,无法在接收消息。
方法二、更改代码

 ConsumerMessageCallbackHandler implements MqttCallback,设置重连,这个时候就不报错了

 

 

 

 



 

posted @ 2025-01-03 18:21  每天进步一点点_hejj  阅读(8)  评论(0编辑  收藏  举报