diff --git a/src/main/java/com/ruoyi/device/domain/impl/tuohengmqtt/handler/TuohengMqttMessageHandler.java b/src/main/java/com/ruoyi/device/domain/impl/tuohengmqtt/handler/TuohengMqttMessageHandler.java index 7a4bb31..24846b5 100644 --- a/src/main/java/com/ruoyi/device/domain/impl/tuohengmqtt/handler/TuohengMqttMessageHandler.java +++ b/src/main/java/com/ruoyi/device/domain/impl/tuohengmqtt/handler/TuohengMqttMessageHandler.java @@ -198,8 +198,20 @@ public class TuohengMqttMessageHandler { return null; } String[] parts = topic.split("/"); - if (parts.length >= 4) { - return parts[3]; + + // /topic/v1/airportNest/{deviceSn}/realTime/data + // parts[0]="", parts[1]="topic", parts[2]="v1", parts[3]="airportNest", parts[4]=deviceSn + if (topic.startsWith("/topic/v1/")) { + if (parts.length >= 5) { + return parts[4]; + } + } + // thing/product/{deviceSn}/osd + // parts[0]="thing", parts[1]="product", parts[2]=deviceSn + else if (topic.startsWith("thing/product/")) { + if (parts.length >= 3) { + return parts[2]; + } } return null; } @@ -209,11 +221,21 @@ public class TuohengMqttMessageHandler { return null; } String[] parts = topic.split("/"); - if (parts.length >= 5) { - return parts[4]; + + // /topic/v1/airportNest/{deviceSn}/realTime/data + // parts[0]="", parts[1]="topic", parts[2]="v1", parts[3]="airportNest", + // parts[4]=deviceSn, parts[5]="realTime", parts[6]="data" + if (topic.startsWith("/topic/v1/")) { + if (parts.length >= 7) { + return parts[5] + "/" + parts[6]; // "realTime/data" or "realTime/basic" + } } - if (parts.length >= 4) { - return parts[3]; + // thing/product/{deviceSn}/osd + // parts[0]="thing", parts[1]="product", parts[2]=deviceSn, parts[3]="osd" + else if (topic.startsWith("thing/product/")) { + if (parts.length >= 4) { + return parts[3]; // "osd" or "events" + } } return null; }