diff --git a/src/main/java/com/zhangshu/chat/demo/websocket/ChatRoom.java b/src/main/java/com/zhangshu/chat/demo/websocket/ChatRoom.java index 8af3324..be45400 100644 --- a/src/main/java/com/zhangshu/chat/demo/websocket/ChatRoom.java +++ b/src/main/java/com/zhangshu/chat/demo/websocket/ChatRoom.java @@ -82,6 +82,7 @@ public class ChatRoom { .map(RoomUserVo::getId) .map(userSessionCache::get) .map(sessionCache::get) + .filter(Objects::nonNull) .forEach(v -> { this.sendMessage(text, v); }); @@ -96,6 +97,9 @@ public class ChatRoom { */ private void sendMessage(String message, Session session) { + if (!session.isOpen()) { + return; + } try { session.getBasicRemote().sendText(message); } catch (IOException e) {