优化会话,当对删除的会话发送信息时返回error
This commit is contained in:
@@ -64,18 +64,24 @@ public class ChatWebSocketHandler extends TextWebSocketHandler {
|
|||||||
|
|
||||||
// 处理私聊消息
|
// 处理私聊消息
|
||||||
if ("chat".equals(wsMessage.getType())) {
|
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. 消息入库 + 会话更新
|
// 1. 消息入库 + 会话更新
|
||||||
ChatRecordsVO chatRecordsVO = chatService.createSession(senderUserId, dto);
|
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. 推送给接收方
|
// 2. 推送给接收方
|
||||||
WebSocketSession receiverSession =
|
WebSocketSession receiverSession =
|
||||||
sessionManager.getSession(dto.getReceiverUserId());
|
sessionManager.getSession(dto.getReceiverUserId());
|
||||||
|
|||||||
@@ -52,7 +52,8 @@ public class ChatServiceImpl implements ChatService {
|
|||||||
|
|
||||||
ChatSessions session = chatSessionsMapper.getSession(senderUserId, dto.getReceiverUserId());
|
ChatSessions session = chatSessionsMapper.getSession(senderUserId, dto.getReceiverUserId());
|
||||||
if (session != null && session.getSessionStatus() == 3) {
|
if (session != null && session.getSessionStatus() == 3) {
|
||||||
throw new RuntimeException("会话已删除,无法发送消息");
|
log.warn("会话已删除,无法发送消息");
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
ChatRecords record = new ChatRecords();
|
ChatRecords record = new ChatRecords();
|
||||||
|
|||||||
Reference in New Issue
Block a user