优化会话,当对删除的会话发送信息时返回error

This commit is contained in:
KilLze
2026-01-07 03:43:33 +08:00
parent b6953cb8d0
commit 21c0a94a5d
2 changed files with 11 additions and 4 deletions

View File

@@ -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<String> errorMsg = new WsMessage<>();
errorMsg.setType("error");
errorMsg.setData("会话已删除,无法发送消息");
session.sendMessage(new TextMessage(objectMapper.writeValueAsString(errorMsg)));
return;
}
// 2. 推送给接收方
WebSocketSession receiverSession =
sessionManager.getSession(dto.getReceiverUserId());

View File

@@ -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();