From dc69c03e7ac62224e317d26ac3e2462652aae91b Mon Sep 17 00:00:00 2001 From: wangrunpu <2095588299@qq.com> Date: Thu, 11 Dec 2025 15:13:43 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=AE=A2=E9=98=85=E4=B8=8A=E4=B8=8B?= =?UTF-8?q?=E7=BA=BF=E7=8A=B6=E6=80=81=E4=B8=BB=E9=A2=98=EF=BC=8C=E5=A4=84?= =?UTF-8?q?=E7=90=86=E8=AE=BE=E5=A4=87=E4=B8=8A=E4=B8=8B=E7=BA=BF=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hazard/config/HazardMqttConfig.java | 2 +- .../handler/HazardMqttMessageHandler.java | 22 +++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/ruoyi-modules/ruoyi-hazard/src/main/java/org/dromara/hazard/config/HazardMqttConfig.java b/ruoyi-modules/ruoyi-hazard/src/main/java/org/dromara/hazard/config/HazardMqttConfig.java index 38e626206..1904b2e21 100644 --- a/ruoyi-modules/ruoyi-hazard/src/main/java/org/dromara/hazard/config/HazardMqttConfig.java +++ b/ruoyi-modules/ruoyi-hazard/src/main/java/org/dromara/hazard/config/HazardMqttConfig.java @@ -47,7 +47,7 @@ public class HazardMqttConfig { try { // 订阅一个主题,QoS=1 mqttGateway.subscribe("iot-hazard-server", 1); - + mqttGateway.subscribe("status/online", 1); log.info("危险源模块已订阅MQTT主题: iot-hazard-server"); } catch (Exception e) { log.error("订阅MQTT主题失败", e); diff --git a/ruoyi-modules/ruoyi-hazard/src/main/java/org/dromara/hazard/handler/HazardMqttMessageHandler.java b/ruoyi-modules/ruoyi-hazard/src/main/java/org/dromara/hazard/handler/HazardMqttMessageHandler.java index 1f265c6ac..30324879c 100644 --- a/ruoyi-modules/ruoyi-hazard/src/main/java/org/dromara/hazard/handler/HazardMqttMessageHandler.java +++ b/ruoyi-modules/ruoyi-hazard/src/main/java/org/dromara/hazard/handler/HazardMqttMessageHandler.java @@ -1,5 +1,6 @@ package org.dromara.hazard.handler; +import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mqtt.handler.MqttMessageHandler; import org.dromara.common.mqtt.server.MqttGateway; import org.eclipse.paho.client.mqttv3.MqttMessage; @@ -8,6 +9,8 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import java.util.List; + /** * 危险源模块的MQTT消息处理器 * @@ -32,6 +35,8 @@ public class HazardMqttMessageHandler implements MqttMessageHandler { // TODO: 根据不同的主题分发到不同的业务处理方法 if (topic.equals("iot-hazard-server")) { handleHazardMessage(topic, payload); + } else if (topic.equals("status/online")){ + handleOnlineMessage(topic, payload); } else { log.warn("未知的消息主题: {}", topic); } @@ -71,4 +76,21 @@ public class HazardMqttMessageHandler implements MqttMessageHandler { // TODO: 实现你的业务逻辑 // 例如: 解析JSON、保存数据库、触发业务流程等 } + + /** + * 处理设备上下线通知 + * @param topic + * @param payload + */ + private void handleOnlineMessage(String topic, String payload) { + log.info("处理设备上下线通知 - Topic: {}, Payload: {}", topic, payload); + List strings = StringUtils.str2List(payload, ":", false, true); + if (strings.size() != 2) return; + String sign = strings.get(0); + if ("OFFLINE".equals(sign)) { + log.info("设备 {} 下线。", strings.get(1)); + }else if ("ONLINE".equals(sign)) { + log.info("设备 {} 上线。", strings.get(1)); + } + } }