liusuyi
2025-10-23 1edc7e1a14278146ef00e4871c71cfd74998802f
将命令回复封装后发送
1 files added
3 files modified
49 ■■■■■ changed files
ard-work/src/main/java/com/ard/work/component/websocket/utils/WebSocketUtil.java 14 ●●●●● patch | view | raw | blame | history
ard-work/src/main/java/com/ard/work/domain/message/BaseMessage.java 2 ●●●●● patch | view | raw | blame | history
ard-work/src/main/java/com/ard/work/domain/message/ServerReplyMessage.java 25 ●●●●● patch | view | raw | blame | history
ard-work/src/main/java/com/ard/work/service/impl/TyServiceImpl.java 8 ●●●●● patch | view | raw | blame | history
ard-work/src/main/java/com/ard/work/component/websocket/utils/WebSocketUtil.java
@@ -3,6 +3,7 @@
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.ard.work.component.websocket.WebSocketSessionManager;
import com.ard.work.domain.message.BaseMessage;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.socket.TextMessage;
import org.springframework.web.socket.WebSocketSession;
@@ -125,4 +126,17 @@
        WebSocketSessionManager.broadcast(JSON.toJSONString(message));
    }
    // 发送消息到所有 WebSocket 客户端
    public static <T> void sendToAll(BaseMessage<T> baseMessage) {
        WebSocketUtil.sendMessageAll(baseMessage);  // 你已有的 WebSocket 发送逻辑
    }
    // 根据消息类型和内容创建消息并发送
    public static <T> void sendMessage(String type, T payload) {
        BaseMessage<T> baseMessage = BaseMessage.<T>builder()
                .type(type)
                .payload(payload)
                .build();
        sendToAll(baseMessage);
    }
}
ard-work/src/main/java/com/ard/work/domain/message/BaseMessage.java
@@ -1,6 +1,7 @@
package com.ard.work.domain.message;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@@ -12,6 +13,7 @@
 * @date 2024年11月04日14:40
 **/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class BaseMessage<T> {
ard-work/src/main/java/com/ard/work/domain/message/ServerReplyMessage.java
New file
@@ -0,0 +1,25 @@
package com.ard.work.domain.message;
import com.ard.work.domain.dto.state.UavState;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
 * Description: 服务回复消息
 * Author: liusuyi
 * Date: 2025年03月10日11:49
 **/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ServerReplyMessage {
    /**
     * 回复信息
     */
    private String message;
}
ard-work/src/main/java/com/ard/work/service/impl/TyServiceImpl.java
@@ -46,6 +46,8 @@
import com.ard.work.domain.dto.wayline.*;
import com.ard.work.domain.entity.ArdDroneInfo;
import com.ard.work.domain.entity.ArdServerInfo;
import com.ard.work.domain.message.BaseMessage;
import com.ard.work.domain.message.ServerReplyMessage;
import com.ard.work.domain.message.UavControlType;
import com.ard.work.domain.receiver.*;
import com.ard.work.service.IArdDroneInfoService;
@@ -903,7 +905,8 @@
    //公共日志打印
    private void logPrint(String message, Object obj) {
        String text = String.format("收到%s回复%s", message, obj);
        WebSocketUtil.sendMessageAll(text);
        ServerReplyMessage serverReplyMessage = ServerReplyMessage.builder().message(text).build();
        WebSocketUtil.sendMessage("reply", serverReplyMessage);
        log.info(text);
    }
@@ -916,7 +919,8 @@
                errorCode,
                ErrorCodeEnum.getDescByCode(errorCode)
        );
        WebSocketUtil.sendMessageAll(text);
        ServerReplyMessage serverReplyMessage = ServerReplyMessage.builder().message(text).build();
        WebSocketUtil.sendMessage("reply", serverReplyMessage);
        log.info(text);
    }