使用paho的MQTT时遇到的重连导致订阅无法收到问题和解决

本文探讨在使用MQTT过程中遇到的重连导致订阅无法收到消息的问题。通过分析MQTT的源码,了解到设置`setAutomaticReconnect(true)`可实现自动重连,但重连后需重新订阅主题才能接收消息。解决方法是让回调对象实现`MqttCallbackExtended`接口,并覆盖相关方法,确保在重连成功后能正确订阅并接收消息。
摘要由CSDN通过智能技术生成

  最近在使用MQTT来实现消息的传输,网上demo很多,这里就不在重复介绍了,直接上代码,百度就能出现一大堆

  下面是MQTT实现订阅的主要代码部分

  

MqttClient client = new MqttClient(HOST, clientid, new MemoryPersistence());

MqttConnectOptions options = new MqttConnectOptions();

options.setCleanSession(true);

options.setUserName(userName);

options.setPassword(passWord.toCharArray());


options.setConnectionTimeout(10);


options.setKeepAliveInterval(20);
//设置断开后重新连接		
options.setAutomaticReconnect(true);

try {

               client.setCallback(new PushCallback());//设置各种情况的回调函数

               client.connect(options);
         
               //订阅消息
               int[] Qos  = {0};

   		String[] topic1 = {TOPIC};

   		client.subscribe(topic1, Qos);

        } catch (Exception e) {

               e.printStackTrace();

        }    

回到方

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值