diff --git a/src/main/java/com/ai/da/common/websocket/NotificationConnection.java b/src/main/java/com/ai/da/common/websocket/NotificationConnection.java index 490acdb2..7dc7c7da 100644 --- a/src/main/java/com/ai/da/common/websocket/NotificationConnection.java +++ b/src/main/java/com/ai/da/common/websocket/NotificationConnection.java @@ -87,7 +87,19 @@ public class NotificationConnection { // 判断用户ID与当前的Key相等 if (userId.equals(key)) { log.info("私发消息 【给用户】 :{}发送消息【{}】", key, message); // 打印 - webSocket.session.getBasicRemote().sendText(message); // 则发送给当前的用户即可 + if (webSocket.session.isOpen()){ + // 避免因为网络问题或其他原因导致连接突然关闭而报错 + try { + webSocket.session.getBasicRemote().sendText(message); // 则发送给当前的用户即可 + } catch (IOException e) { + log.error("Failed to send message to session {}: {}", webSocket.session.getId(), e.getMessage()); + // 这里可以选择移除关闭的 session + websockets.remove(entry.getKey()); + } + }else { + log.info("连接已关闭,sessionId:{}, userId:{}", webSocket.session.getId(), key); + websockets.remove(entry.getKey()); + } } } } diff --git a/src/main/java/com/ai/da/service/impl/MessageCenterServiceImpl.java b/src/main/java/com/ai/da/service/impl/MessageCenterServiceImpl.java index 47b169c1..9c40597c 100644 --- a/src/main/java/com/ai/da/service/impl/MessageCenterServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/MessageCenterServiceImpl.java @@ -196,7 +196,7 @@ public class MessageCenterServiceImpl extends ServiceImpl