PushCallback.java 1.7 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
package com.ruoyi.mqtt.config;

import lombok.extern.slf4j.Slf4j;
import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
import org.eclipse.paho.client.mqttv3.MqttCallback;
import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

/**
 * @author jianglw
 * @version 1.0
 * @date 2021/5/20 9:44
 * 消息回调重连
 */
@Slf4j
@Component
public class PushCallback implements MqttCallback {
    @Autowired
    private MqttConfiguration mqttConfiguration;

    @Override
    public void connectionLost(Throwable cause) {        // 连接丢失后,一般在这里面进行重连
jianglw's avatar
jianglw committed
24
//        log.info("连接断开,正在重连");
25 26 27 28
        MqttPushClient mqttPushClient = mqttConfiguration.getMqttPushClient();
        if (null != mqttPushClient) {
            mqttPushClient.connect(MqttConfiguration.host, MqttConfiguration.clientId, MqttConfiguration.userName,
                    MqttConfiguration.password, MqttConfiguration.timeout, MqttConfiguration.keepAlive);
jianglw's avatar
jianglw committed
29
//            log.info("已重连");
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
        }

    }

    /**
     * 发送消息,消息到达后处理方法
     * @param token
     */
    @Override
    public void deliveryComplete(IMqttDeliveryToken token) {

    }

    /**
     * 订阅主题接收到消息处理方法
     * @param topic
     * @param message
     */
    @Override
    public void messageArrived(String topic, MqttMessage message) {
        // subscribe后得到的消息会执行到这里面,这里在控制台有输出
jianglw's avatar
jianglw committed
51 52 53
//        log.info("接收消息主题 : " + topic);
//        log.info("接收消息Qos : " + message.getQos());
//        log.info("接收消息内容 : " + new String(message.getPayload()));
54 55 56

    }
}