chejianzheng 4 месяцев назад
Родитель
Сommit
c739637e27

+ 6 - 0
portal-service-common/src/main/java/com/hfln/portal/common/constant/mqtt/topic/TopicConstants.java

@@ -36,4 +36,10 @@ public interface TopicConstants {
     String TOPIC_DAS_ESIST = "/das/exist";
 
 
+    /**
+     * 与前端交互 主题
+     */
+    // 发送实时点位
+    String TOPIC_MPS_REALTIME_POS = "/mps/%s/realtime_pos";
+
 }

+ 13 - 2
portal-service-infrastructure/src/main/java/com/hfln/portal/infrastructure/mqtt/MqttSubHandle.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson2.JSON;
 import com.alibaba.fastjson2.JSONArray;
 import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.hfln.portal.common.constant.mqtt.topic.TopicConstants;
 import com.hfln.portal.domain.customer.util.DevPosFixUtil;
 import com.hfln.portal.domain.customer.util.MsgClient;
 import com.hfln.portal.domain.customer.util.WxOfficeAccountClient;
@@ -79,7 +80,7 @@ public class MqttSubHandle {
 
             // 根据主题路由到不同的处理方法
             // 提取主题的操作部分(最后一段)
-            String action = extractActionFromTopic(topic);
+            String action = extractActionFromTopic02(topic);
             if (action != null) {
                 switch (action) {
                     case "event":
@@ -91,7 +92,7 @@ public class MqttSubHandle {
                     case "realtime_pos":
                         subDasRealtimePos(topic, payload);
                         break;
-                        case "dev_status":
+                    case "dev_status":
                         subDasDevStatus(topic, payload);
                         break;
                     case "exist":
@@ -388,6 +389,7 @@ public class MqttSubHandle {
 
         // todo websocket 发送msg
 //            PushMsgWebSocket.sendMessageTo(msg.toString(), dev_id);
+        mqttClient.sendMessage(String.format(TopicConstants.TOPIC_MPS_REALTIME_POS, clientId), msg.toString());
     }
 
     public void subDasDevStatus(String topic, String payload) {
@@ -502,4 +504,13 @@ public class MqttSubHandle {
         }
         return null;
     }
+
+    private String extractActionFromTopic02(String topic) {
+        if (StringUtils.isNotBlank(topic)) {
+            String[] parts = topic.split("/");
+
+            return parts[parts.length - 1]; // 返回最后一段
+        }
+        return null;
+    }
 }