From 4f3a98f19143865cdc1de4791e8a95d96bd40c65 Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期五, 01 八月 2025 13:27:59 +0800
Subject: [PATCH] yys 密码已重置

---
 cnas-device/src/main/java/com/ruoyi/device/mqtt/MQCallback.java |   93 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 93 insertions(+), 0 deletions(-)

diff --git a/cnas-device/src/main/java/com/ruoyi/device/mqtt/MQCallback.java b/cnas-device/src/main/java/com/ruoyi/device/mqtt/MQCallback.java
new file mode 100644
index 0000000..51fb42a
--- /dev/null
+++ b/cnas-device/src/main/java/com/ruoyi/device/mqtt/MQCallback.java
@@ -0,0 +1,93 @@
+package com.ruoyi.device.mqtt;
+
+import com.alibaba.fastjson.JSONObject;
+import com.ruoyi.device.service.CollectBridgeService;
+import lombok.SneakyThrows;
+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.stereotype.Component;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.Resource;
+
+@Component
+@Slf4j
+public class MQCallback<component> implements MqttCallback {
+
+    private MQClient mqClient; // MQTT杩炴帴鏁版嵁
+
+    private MQConfig mqConfig; // yml閰嶇疆鏁版嵁
+
+    private static MQCallback mqCallback;
+
+    @Resource
+    private CollectBridgeService collectBridgeService;
+
+    @PostConstruct
+    public void init() {
+		mqCallback = this;
+         // 鍒濅娇鍖栨椂灏嗗凡闈欐�佸寲鐨刢onfigParam瀹炰緥鍖�
+		mqCallback.collectBridgeService = this.collectBridgeService;
+    }
+
+    public MQCallback(MQClient mqClient, MQConfig mqConfig) {
+        this.mqClient = mqClient;
+        this.mqConfig = mqConfig;
+    }
+
+    /** 杩炴帴涓㈠け鍚庯紝涓�鑸湪杩欓噷闈㈣繘琛岄噸杩� **/
+    @SneakyThrows
+    @Override
+    public void connectionLost(Throwable cause) {
+        /** 杩炴帴涓㈠け鍚庯紝涓�鑸湪杩欓噷闈㈣繘琛岄噸杩� **/
+        if (mqClient != null) {
+            while (true) {
+                try {
+                    log.info("==============銆嬨�嬨�媅MQTT] 杩炴帴涓㈠け锛屽皾璇曢噸杩�...");
+                    MQClient mqttPushClient = new MQClient();
+                    mqttPushClient.connect(mqConfig);
+                    if (mqClient.getClient().isConnected()) {
+                        log.info("=============>>閲嶈繛鎴愬姛");
+                    }
+                    break;
+                } catch (Exception e) {
+                    log.error("=============>>>[MQTT] 杩炴帴鏂紑锛岄噸杩炲け璐ワ紒<<=============");
+                    continue;
+                }
+            }
+        }
+        log.info(cause.getMessage());
+    }
+
+    /**
+     * MQTT鏈嶅姟鍣ㄥ悜WEB鏈嶅姟鍣ㄥ彂閫佺殑鏁版嵁浼氭墽琛屽埌杩欓噷闈紝瀹樻柟璇濈О涓猴細璁㈤槄鍚庣殑娑堟伅
+     * @param topic 涓婚锛氫篃绉颁负搴曞眰缃戝叧鍞竴鏍囪瘑
+     * @param message 淇℃伅
+     * @throws Exception 鎶ラ敊
+     */
+    @Override
+    public void messageArrived(String topic, MqttMessage message) throws Exception {
+        try {
+            String parse = new String(message.getPayload());
+            JSONObject jsonObject = JSONObject.parseObject(parse);
+            // 濉厖閲囬泦鏁版嵁
+            mqCallback.collectBridgeService.addBridgeValue(jsonObject);
+
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.info("============銆嬨�嬫帴鏀舵秷鎭富棰樺紓甯� : " + e.getMessage());
+        }
+    }
+
+    /**
+     * WEB鏈嶅姟鍣ㄥ悜MQTT鏈嶅姟鍣ㄥ彂閫佺殑鏁版嵁浼氭墽琛屽埌杩欓噷闈�
+     * 瀹樻柟璇濈О涓猴細鍙戝竷鍚庝細鎵ц鍒拌繖閲�
+     * @param token 杩炴帴token
+     */
+    @Override
+    public void deliveryComplete(IMqttDeliveryToken token) {
+//        log.info("==========鍙戝竷淇℃伅={}==========", token.isComplete());
+    }
+}

--
Gitblit v1.9.3