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