From 2828c209a18d60de47963611ef52b8108dc9454b Mon Sep 17 00:00:00 2001 From: lld <15027638633@163.com> Date: Sun, 8 Mar 2026 20:17:47 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../interceptor/DeviceStatusHandler.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/agri-framework/src/main/java/com/agri/framework/interceptor/DeviceStatusHandler.java b/agri-framework/src/main/java/com/agri/framework/interceptor/DeviceStatusHandler.java index 28c0910..d07f752 100644 --- a/agri-framework/src/main/java/com/agri/framework/interceptor/DeviceStatusHandler.java +++ b/agri-framework/src/main/java/com/agri/framework/interceptor/DeviceStatusHandler.java @@ -88,7 +88,14 @@ public class DeviceStatusHandler { */ public void handle(String topic, String payload) { - if (!isJsonObjectLike(payload)) return; + // log.info("【设备处理】JSON解析:{}",payloadObj); + // 解析设备ID:主题格式为dtu/{deviceId}/up,分割后第2个元素是设备ID + String deviceId = extractDeviceId(topic); + if (deviceId == null) return; + String[] segments = topic.split("/"); + String action = segments[2]; + if ("down".equals(action) || !isJsonObjectLike(payload)) return; + // 第一步:解析JSON,非有效JSON直接return JSONObject payloadObj; try { @@ -102,13 +109,6 @@ public class DeviceStatusHandler { return; } - // log.info("【设备处理】JSON解析:{}",payloadObj); - // 解析设备ID:主题格式为dtu/{deviceId}/up,分割后第2个元素是设备ID - String deviceId = extractDeviceId(topic); - if (deviceId == null) return; - - String[] segments = topic.split("/"); - String action = segments[2]; // 转发消息 forwardPayload(deviceId, payload,payloadObj,action);