MQTT设置自动重连后,无法自动订阅以前的主题

一、业务场景

我们在使用MQTT的时候,在设置客户端参数的时候设置的自动重连属性,但是断开重连后无法订阅断开之前订阅的消息。

二、异常处理

在设置MQTT客户端参数配置的时候记得设置不要清除Session即可

    /**
     * MQTT连接参数设置
     */
    private MqttConnectOptions mqttConnectOptions(String userName, String passWord) throws MqttException {
        mqttClient = new MqttClient(HOST, clientId, new MemoryPersistence());
        MqttConnectOptions options = new MqttConnectOptions();
        options.setUserName(userName);
        options.setPassword(passWord.toCharArray());
        options.setConnectionTimeout(10);///默认:30
        options.setAutomaticReconnect(true);//默认:false
        options.setCleanSession(false);//默认:true
        //options.setKeepAliveInterval(20);//默认:60
        return options;
    }

设置AutomaticReconnect(true)和CleanSession(false),这样MQTT客户端在断开重连后还能继续收到之前的消息

发布了5 篇原创文章 · 获赞 2 · 访问量 1886

猜你喜欢

转载自blog.csdn.net/qq_37949192/article/details/103991674
今日推荐