From 8738b7aa54ebd8837e135bab88ea031b6ed788b0 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期三, 11 十月 2023 17:03:43 +0800
Subject: [PATCH] 接口整理

---
 server/services/src/main/java/com/doumee/core/mqtt/config/MqttClientInit.java |   35 ++++++++++++++++++++++++++++++++---
 1 files changed, 32 insertions(+), 3 deletions(-)

diff --git a/server/services/src/main/java/com/doumee/core/mqtt/config/MqttClientInit.java b/server/services/src/main/java/com/doumee/core/mqtt/config/MqttClientInit.java
index 70783e3..8085cba 100644
--- a/server/services/src/main/java/com/doumee/core/mqtt/config/MqttClientInit.java
+++ b/server/services/src/main/java/com/doumee/core/mqtt/config/MqttClientInit.java
@@ -5,9 +5,6 @@
 import org.eclipse.paho.client.mqttv3.MqttConnectOptions;
 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;
@@ -44,5 +41,37 @@
             }
             return  client;
         }
+        public static synchronized MqttClient refreshClient(MqttConfig config,MqttPushCallback callBack){
+            if(client !=null){
+                return  client;
+            }
+            try {
+                // host涓轰富鏈哄悕锛宑lientid鍗宠繛鎺QTT鐨勫鎴风ID锛屼竴鑸互鍞竴鏍囪瘑绗﹁〃绀猴紝MemoryPersistence璁剧疆clientid鐨勪繚瀛樺舰寮忥紝榛樿涓轰互鍐呭瓨淇濆瓨
+                client = new org.eclipse.paho.client.mqttv3.MqttClient(config.getHost(), config.getClientid() ,new MemoryPersistence());
+                // MQTT鐨勮繛鎺ヨ缃�
+                MqttConnectOptions   options = new MqttConnectOptions();
+                // 璁剧疆鏄惁娓呯┖session,杩欓噷濡傛灉璁剧疆涓篺alse琛ㄧず鏈嶅姟鍣ㄤ細淇濈暀瀹㈡埛绔殑杩炴帴璁板綍锛岃缃负true琛ㄧず姣忔杩炴帴鍒版湇鍔″櫒閮戒互鏂扮殑韬唤杩炴帴
+                options.setCleanSession(false);
+                // 璁剧疆杩炴帴鐨勭敤鎴峰悕
+                options.setUserName(config.getUsername());
+                // 璁剧疆杩炴帴鐨勫瘑鐮�
+                options.setPassword(config.getPassword().toCharArray());
+                // 璁剧疆瓒呮椂鏃堕棿 鍗曚綅涓虹
+                options.setConnectionTimeout(10);
+                // 璁剧疆浼氳瘽蹇冭烦鏃堕棿 鍗曚綅涓虹 鏈嶅姟鍣ㄤ細姣忛殧1.5*20绉掔殑鏃堕棿鍚戝鎴风鍙戦�佷釜娑堟伅鍒ゆ柇瀹㈡埛绔槸鍚﹀湪绾匡紝浣嗚繖涓柟娉曞苟娌℃湁閲嶈繛鐨勬満鍒�
+                options.setKeepAliveInterval(20);
+                // 璁剧疆鍥炶皟
+                client.setCallback(callBack);
+                //璁剧疆鏂紑鍚庨噸鏂拌繛鎺�
+                options.setAutomaticReconnect(true);
+                MqttTopic topic = client.getTopic(config.getClientid()+"_close");
+                //閬楀槺
+                options.setWill(topic, "close".getBytes(), 1, true);
+                client.connect(options);
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+            return  client;
+        }
 
 }

--
Gitblit v1.9.3