jiangping
2023-10-12 b1c1c20ef382dd2be0f6bdf81f5d2913e749faef
server/services/src/main/java/com/doumee/core/mqtt/config/MqttClientInit.java
@@ -1,13 +1,12 @@
package com.doumee.core.mqtt.config;
import com.doumee.core.constants.Constants;
import com.doumee.core.mqtt.service.MqttPushCallback;
import org.eclipse.paho.client.mqttv3.MqttClient;
import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
import org.eclipse.paho.client.mqttv3.MqttException;
import org.eclipse.paho.client.mqttv3.MqttTopic;
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;
public class MqttClientInit {
        static MqttClient client;
@@ -18,7 +17,7 @@
            }
            try {
                // host为主机名,clientid即连接MQTT的客户端ID,一般以唯一标识符表示,MemoryPersistence设置clientid的保存形式,默认为以内存保存
                client = new org.eclipse.paho.client.mqttv3.MqttClient(config.getHost(), config.getClientid() ,new MemoryPersistence());
                client = new org.eclipse.paho.client.mqttv3.MqttClient(config.getHost(), config.getClientid()+ Constants.getUUID(),new MemoryPersistence());
                // MQTT的连接设置
                MqttConnectOptions   options = new MqttConnectOptions();
                // 设置是否清空session,这里如果设置为false表示服务器会保留客户端的连接记录,设置为true表示每次连接到服务器都以新的身份连接
@@ -44,5 +43,11 @@
            }
            return  client;
        }
        public static synchronized void refreshClient() throws MqttException {
            if(client !=null){
                boolean result = client.isConnected();
                   client.reconnect();
            }
        }
}