liusuyi
2025-11-25 a59876cd161a994712e98b1439d75ce17d00064b
ard-work/src/main/java/com/ard/work/component/websocket/handler/TyMessageHandler.java
@@ -89,7 +89,7 @@
     */
    private void handleHeartbeatMessage(String payload, Long userId) {
        WebSocketUtil.sendMessage(userId, "服务端收到:" + payload);
        WebSocketUtil.sendMessage(userId, payload);
    }
    /**
@@ -290,14 +290,7 @@
        Long userId = Long.parseLong(userIdStr);
        WebSocketSessionManager.removeSession(userId);
        log.info("【cmd】size: {}", WebSocketSessionManager.getOnlineUserCount());
        // 释放该用户所有 UAV 控制权
        uavControlService.releaseAllControls(userId);
        uavStreamManager.stopAllPullStreamByUser(userId);
        uavStateManager.removeSubscribe(userId);
        uavTelemetryManager.removeSubscribe(userId);
        uavSignalManager.removeSubscribe(userId);
        uavControlManager.removeSubscribe(userId);
        // 延迟10秒删除token(若期间没重连)
        CompletableFuture.runAsync(() -> {
@@ -309,6 +302,12 @@
            if (!WebSocketSessionManager.containsUser(userId)) {
                LoginUser loginUser = tokenService.getLoginUserByUserId(userId);
                if (loginUser != null) {
                    uavControlService.releaseAllControls(userId);
                    uavStreamManager.stopAllPullStreamByUser(userId);
                    uavStateManager.removeSubscribe(userId);
                    uavTelemetryManager.removeSubscribe(userId);
                    uavSignalManager.removeSubscribe(userId);
                    uavControlManager.removeSubscribe(userId);
                    tokenService.delLoginUser(loginUser.getToken(), userId);
                    log.info("【cmd】用户 [{}] 超时未重连,已删除 token", userId);
                }