diff --git a/src/main/java/com/webgame/webgamebackend/ws/dto/WsInboundMessage.java b/src/main/java/com/webgame/webgamebackend/ws/dto/WsInboundMessage.java new file mode 100644 index 0000000..eb7efc2 --- /dev/null +++ b/src/main/java/com/webgame/webgamebackend/ws/dto/WsInboundMessage.java @@ -0,0 +1,26 @@ +package com.webgame.webgamebackend.ws.dto; + +/** + * 客户端→服务端 WebSocket 消息类型 + */ +public final class WsInboundMessage { + + private WsInboundMessage() {} + + /** 落子 */ + public static final String PLACE_STONE = "place_stone"; + /** 发送聊天 */ + public static final String CHAT = "chat"; + /** 准备/取消准备 */ + public static final String READY = "ready"; + /** 认输 */ + public static final String RESIGN = "resign"; + /** 求和请求 */ + public static final String DRAW_REQUEST = "draw_request"; + /** 同意/拒绝求和 */ + public static final String DRAW_RESPONSE = "draw_response"; + /** 离开房间 */ + public static final String LEAVE = "leave"; + /** 开始游戏(仅房主) */ + public static final String START = "start"; +} diff --git a/src/main/java/com/webgame/webgamebackend/ws/dto/WsMessage.java b/src/main/java/com/webgame/webgamebackend/ws/dto/WsMessage.java new file mode 100644 index 0000000..8a38d23 --- /dev/null +++ b/src/main/java/com/webgame/webgamebackend/ws/dto/WsMessage.java @@ -0,0 +1,12 @@ +package com.webgame.webgamebackend.ws.dto; + +/** + * WebSocket 消息通用封装 + * + * @param type 消息类型 + * @param data 消息数据(JSON 对象或基本类型) + */ +public record WsMessage( + String type, + Object data +) {} diff --git a/src/main/java/com/webgame/webgamebackend/ws/dto/WsOutboundMessage.java b/src/main/java/com/webgame/webgamebackend/ws/dto/WsOutboundMessage.java new file mode 100644 index 0000000..33054bb --- /dev/null +++ b/src/main/java/com/webgame/webgamebackend/ws/dto/WsOutboundMessage.java @@ -0,0 +1,34 @@ +package com.webgame.webgamebackend.ws.dto; + +/** + * 服务端→客户端 WebSocket 消息类型 + */ +public final class WsOutboundMessage { + + private WsOutboundMessage() {} + + /** 棋盘全量同步 */ + public static final String BOARD_SYNC = "board_sync"; + /** 单步落子通知 */ + public static final String MOVE = "move"; + /** 轮次切换 */ + public static final String TURN_CHANGE = "turn_change"; + /** 聊天广播 */ + public static final String CHAT_BROADCAST = "chat_broadcast"; + /** 对局结束 */ + public static final String GAME_OVER = "game_over"; + /** 玩家加入 */ + public static final String PLAYER_JOIN = "player_join"; + /** 玩家离开 */ + public static final String PLAYER_LEAVE = "player_leave"; + /** 玩家准备状态变更 */ + public static final String READY_CHANGE = "ready_change"; + /** 观战者加入 */ + public static final String SPECTATOR_JOIN = "spectator_join"; + /** 观战者离开 */ + public static final String SPECTATOR_LEAVE = "spectator_leave"; + /** 走棋记录同步 */ + public static final String MOVE_HISTORY = "move_history"; + /** 错误消息 */ + public static final String ERROR = "error"; +}