From 9904647f1c38cd06a2a0e190142aad430e722d4c Mon Sep 17 00:00:00 2001
From: liusuyi <1951119284@qq.com>
Date: Fri, 19 Dec 2025 11:28:02 +0800
Subject: [PATCH] 无人机上线离线通过websocket发送
---
ard-work/src/main/java/com/ard/work/listener/DeviceStatusEventListener.java | 22 ++++++++++++++++++++++
1 files changed, 22 insertions(+), 0 deletions(-)
diff --git a/ard-work/src/main/java/com/ard/work/listener/DeviceStatusEventListener.java b/ard-work/src/main/java/com/ard/work/listener/DeviceStatusEventListener.java
index bfc6653..7cda171 100644
--- a/ard-work/src/main/java/com/ard/work/listener/DeviceStatusEventListener.java
+++ b/ard-work/src/main/java/com/ard/work/listener/DeviceStatusEventListener.java
@@ -1,12 +1,17 @@
package com.ard.work.listener;
+import com.ard.work.component.websocket.utils.WebSocketUtil;
import com.ard.work.domain.event.DeviceStatusEvent;
+import com.ard.work.domain.message.BaseMessage;
import com.ard.work.service.IArdFlightTaskPartService;
import lombok.extern.java.Log;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component;
+
+import java.util.HashMap;
+import java.util.Map;
/**
* 无人机状态事件监听
@@ -29,10 +34,27 @@
if (isOnline) {
log.info("设备 {} 已上线", boxSn);
+ sendUavStatus(boxSn, "online");
} else {
log.info("设备 {} 已离线", boxSn);
+ sendUavStatus(boxSn, "offline");
//将剩余轨迹分片数据入库
ardFlightTaskPartService.flushRemaining(boxSn);
}
}
+
+ /**
+ * 发送无人机状态消息到所有客户端
+ */
+ private void sendUavStatus(String boxSn, String status) {
+ BaseMessage<Map<String, Object>> baseMessage = new BaseMessage<>();
+ baseMessage.setType("uav_status");
+
+ Map<String, Object> payload = new HashMap<>();
+ payload.put("boxSn", boxSn);
+ payload.put("status", status);
+
+ baseMessage.setPayload(payload);
+ WebSocketUtil.sendToAll(baseMessage);
+ }
}
--
Gitblit v1.9.3