From 0a1f878c6f8db629a981f9bf0836f892ef31cb67 Mon Sep 17 00:00:00 2001 From: chanbook <648715275@qq.com> Date: Sat, 6 Aug 2022 20:19:30 +0800 Subject: [PATCH] =?UTF-8?q?=E8=81=8A=E5=A4=A9=E5=AE=A4=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E5=8F=91=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zhangshu/chat/demo/websocket/ChatRoom.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) 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 be45400..de2a7f9 100644 --- a/src/main/java/com/zhangshu/chat/demo/websocket/ChatRoom.java +++ b/src/main/java/com/zhangshu/chat/demo/websocket/ChatRoom.java @@ -15,6 +15,7 @@ import javax.websocket.*; import javax.websocket.server.PathParam; import javax.websocket.server.ServerEndpoint; import java.io.IOException; +import java.util.Iterator; import java.util.Objects; import java.util.Optional; @@ -37,10 +38,10 @@ public class ChatRoom { */ @OnOpen public void onOpen(Session session, @PathParam("userId") Long userId) { - if (!getRoomCache().isExistUser(userId)) { - sendMessage("用户不在房间中,拒绝连接", session); - return; - } +// if (!getRoomCache().isExistUser(userId)) { +// sendMessage("用户不在房间中,拒绝连接", session); +// return; +// } String sessionId = session.getId().toLowerCase(); sessionUserCache.put(sessionId, userId); sessionCache.put(sessionId, session); @@ -65,6 +66,14 @@ public class ChatRoom { } Room room = getRoomCache().getRoomByUser(userId); if (Objects.isNull(room)) { + for (Session sendSession : sessionCache) { + UserMessageVo messageVo = UserMessageVo.builder() + .id(userId) + .message(message) + .build(); + String text = JSONUtil.toJsonStr(messageVo); + this.sendMessage(text, sendSession); + } return; } Optional userVo = room.getUserList().stream().filter(v -> v.getId().equals(userId)).findFirst();