| | |
| | | } |
| | | |
| | | /** |
| | | * 处理发送来的文本消息 |
| | | * 处理接收到的文本消息 |
| | | * |
| | | * @param session |
| | | * @param message |
| | | * @throws Exception |
| | | * @param session WebSocket会话 |
| | | * @param message 接收到的文本消息 |
| | | * @throws Exception 处理消息过程中可能抛出的异常 |
| | | */ |
| | | @Override |
| | | protected void handleTextMessage(WebSocketSession session, TextMessage message) throws Exception { |
| | | // 从WebSocket会话中获取登录用户信息 |
| | | LoginUser loginUser = (LoginUser) session.getAttributes().get(LOGIN_USER_KEY); |
| | | List<Long> userIds = List.of(loginUser.getUserId()); |
| | | |
| | | // 创建WebSocket消息DTO对象 |
| | | WebSocketMessageDto webSocketMessageDto = new WebSocketMessageDto(); |
| | | webSocketMessageDto.setSessionKeys(userIds); |
| | | webSocketMessageDto.setSessionKeys(List.of(loginUser.getUserId())); |
| | | webSocketMessageDto.setMessage(message.getPayload()); |
| | | WebSocketUtils.publishMessage(webSocketMessageDto); |
| | | } |
| | | |
| | | /** |
| | | * 处理接收到的二进制消息 |
| | | * |
| | | * @param session WebSocket会话 |
| | | * @param message 接收到的二进制消息 |
| | | * @throws Exception 处理消息过程中可能抛出的异常 |
| | | */ |
| | | @Override |
| | | protected void handleBinaryMessage(WebSocketSession session, BinaryMessage message) throws Exception { |
| | | super.handleBinaryMessage(session, message); |
| | | } |
| | | |
| | | /** |
| | | * 心跳监测的回复 |
| | | * 处理接收到的Pong消息(心跳监测) |
| | | * |
| | | * @param session |
| | | * @param message |
| | | * @throws Exception |
| | | * @param session WebSocket会话 |
| | | * @param message 接收到的Pong消息 |
| | | * @throws Exception 处理消息过程中可能抛出的异常 |
| | | */ |
| | | @Override |
| | | protected void handlePongMessage(WebSocketSession session, PongMessage message) throws Exception { |
| | |
| | | } |
| | | |
| | | /** |
| | | * 连接出错时 |
| | | * 处理WebSocket传输错误 |
| | | * |
| | | * @param session |
| | | * @param exception |
| | | * @throws Exception |
| | | * @param session WebSocket会话 |
| | | * @param exception 发生的异常 |
| | | * @throws Exception 处理过程中可能抛出的异常 |
| | | */ |
| | | @Override |
| | | public void handleTransportError(WebSocketSession session, Throwable exception) throws Exception { |
| | |
| | | } |
| | | |
| | | /** |
| | | * 连接关闭后 |
| | | * 在WebSocket连接关闭后执行清理操作 |
| | | * |
| | | * @param session |
| | | * @param status |
| | | * @param session WebSocket会话 |
| | | * @param status 关闭状态信息 |
| | | */ |
| | | @Override |
| | | public void afterConnectionClosed(WebSocketSession session, CloseStatus status) { |
| | |
| | | } |
| | | |
| | | /** |
| | | * 是否支持分片消息 |
| | | * 指示处理程序是否支持接收部分消息 |
| | | * |
| | | * @return |
| | | * @return 如果支持接收部分消息,则返回true;否则返回false |
| | | */ |
| | | @Override |
| | | public boolean supportsPartialMessages() { |