diff --git a/src/main/java/com/bao/dating/controller/websocket/ChatWebSocketHandler.java b/src/main/java/com/bao/dating/controller/websocket/ChatWebSocketHandler.java index a0ad6e2..3624643 100644 --- a/src/main/java/com/bao/dating/controller/websocket/ChatWebSocketHandler.java +++ b/src/main/java/com/bao/dating/controller/websocket/ChatWebSocketHandler.java @@ -64,18 +64,24 @@ public class ChatWebSocketHandler extends TextWebSocketHandler { // 处理私聊消息 if ("chat".equals(wsMessage.getType())) { - handlePrivateChat(senderUserId, wsMessage.getData()); + handlePrivateChat(session, senderUserId, wsMessage.getData()); } } /** * 私聊处理 */ - private void handlePrivateChat(Long senderUserId, ChatRecordSendDTO dto) throws Exception { + private void handlePrivateChat(WebSocketSession session, Long senderUserId, ChatRecordSendDTO dto) throws Exception { // 1. 消息入库 + 会话更新 ChatRecordsVO chatRecordsVO = chatService.createSession(senderUserId, dto); - + if (chatRecordsVO == null){ + WsMessage errorMsg = new WsMessage<>(); + errorMsg.setType("error"); + errorMsg.setData("会话已删除,无法发送消息"); + session.sendMessage(new TextMessage(objectMapper.writeValueAsString(errorMsg))); + return; + } // 2. 推送给接收方 WebSocketSession receiverSession = sessionManager.getSession(dto.getReceiverUserId()); diff --git a/src/main/java/com/bao/dating/service/impl/ChatServiceImpl.java b/src/main/java/com/bao/dating/service/impl/ChatServiceImpl.java index 2347d18..85be330 100644 --- a/src/main/java/com/bao/dating/service/impl/ChatServiceImpl.java +++ b/src/main/java/com/bao/dating/service/impl/ChatServiceImpl.java @@ -52,7 +52,8 @@ public class ChatServiceImpl implements ChatService { ChatSessions session = chatSessionsMapper.getSession(senderUserId, dto.getReceiverUserId()); if (session != null && session.getSessionStatus() == 3) { - throw new RuntimeException("会话已删除,无法发送消息"); + log.warn("会话已删除,无法发送消息"); + return null; } ChatRecords record = new ChatRecords();