From 4fabfe4dbd2eb28d07a4350597d314958cc1c281 Mon Sep 17 00:00:00 2001 From: MrShi <1878285526@qq.com> Date: 星期四, 09 十月 2025 11:16:43 +0800 Subject: [PATCH] 优化 --- server/services/src/main/java/com/doumee/core/mqtt/config/MqttClientInit.java | 34 +++++++++++++++++++++++++++++----- 1 files changed, 29 insertions(+), 5 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 7028dc9..43e47d2 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 @@ -1,21 +1,33 @@ package com.doumee.core.mqtt.config; +import com.doumee.config.SpringContextUtil; import com.doumee.core.constants.Constants; import com.doumee.core.mqtt.service.MqttPushCallback; +import com.doumee.core.mqtt.service.MqttSubService; +import com.doumee.core.mqtt.service.MqttToolService; 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; public class MqttClientInit { static MqttClient client; static MqttClient subClient; - + public static boolean isNeedReSub =false ; public static synchronized MqttClient getInstance(MqttConfig config ){ if(client !=null){ + if(!client.isConnected()){ + try { + client.reconnect(); + } catch (MqttException e) { + throw new RuntimeException(e); + } + } return client; } + try { // host涓轰富鏈哄悕锛宑lientid鍗宠繛鎺QTT鐨勫鎴风ID锛屼竴鑸互鍞竴鏍囪瘑绗﹁〃绀猴紝MemoryPersistence璁剧疆clientid鐨勪繚瀛樺舰寮忥紝榛樿涓轰互鍐呭瓨淇濆瓨 String clientId =config.getClientid() +config.getVersion(); @@ -45,6 +57,7 @@ } public static synchronized MqttClient getSubInstance(MqttConfig config,MqttPushCallback callBack){ if(subClient !=null){ + refreshClient(); return subClient; } try { @@ -78,11 +91,22 @@ } + public static synchronized void isSubClientValid() { + if(isNeedReSub){ + MqttSubService service = SpringContextUtil.getBean(MqttSubService.class); + if(service!=null){ + service.startSubcribe(); + } + } + } - public static synchronized void refreshClient() throws MqttException { - if(client !=null){ - boolean result = client.isConnected(); - client.reconnect(); + public static synchronized void refreshClient() { + try { + if(subClient !=null && !subClient.isConnected()){ + subClient.reconnect(); + } + }catch (Exception e){ + e.printStackTrace(); } } -- Gitblit v1.9.3