From ab2050c3493afa22619e5bb9c0bfb7b48990f96c Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期一, 17 二月 2025 15:18:38 +0800
Subject: [PATCH] 111
---
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