From cd55aff7eea06f77a8f712cef1ad2744c44d0f8a Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期四, 20 六月 2024 18:56:16 +0800 Subject: [PATCH] 1.修改bug --- ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/util/WebSocketUsers.java | 67 ++++++++++++--------------------- 1 files changed, 25 insertions(+), 42 deletions(-) diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/util/WebSocketUsers.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/util/WebSocketUsers.java index 5d8a44b..1b546e3 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/util/WebSocketUsers.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/util/WebSocketUsers.java @@ -16,34 +16,17 @@ */ public class WebSocketUsers { - /** - * WebSocketUsers 日志控制器 - */ private static final Logger LOGGER = LoggerFactory.getLogger(WebSocketUsers.class); - /** - * 用户集 - */ - private static Map<String, Session> USERS = new ConcurrentHashMap<String, Session>(); + private static Map<String, Session> USERS = new ConcurrentHashMap<>(); + private static Map<String, Integer> USER_TYPES = new ConcurrentHashMap<>(); - /** - * 存储用户 - * - * @param key 唯一键 - * @param session 用户信息 - */ - public static void put(String key, Session session) + public static void put(String key, Session session, Integer clientType) { USERS.put(key, session); + USER_TYPES.put(key, clientType); } - /** - * 移除用户 - * - * @param session 用户信息 - * - * @return 移除结果 - */ public static boolean remove(Session session) { String key = null; @@ -68,15 +51,11 @@ return remove(key); } - /** - * 移出用户 - * - * @param key 键 - */ public static boolean remove(String key) { LOGGER.info("\n 正在移出用户 - {}", key); Session remove = USERS.remove(key); + USER_TYPES.remove(key); if (remove != null) { boolean containsValue = USERS.containsValue(remove); @@ -89,21 +68,15 @@ } } - /** - * 获取在线用户列表 - * - * @return 返回用户集合 - */ public static Map<String, Session> getUsers() { return USERS; } - /** - * 群发消息文本消息 - * - * @param message 消息内容 - */ + public static Integer getUserType(String key) { + return USER_TYPES.get(key); + } + public static void sendMessageToUsersByText(String message) { Collection<Session> values = USERS.values(); @@ -113,12 +86,6 @@ } } - /** - * 发送文本消息 - * - * @param session 自己的用户名 - * @param message 消息内容 - */ public static void sendMessageToUserByText(Session session, String message) { if (session != null) @@ -137,4 +104,20 @@ LOGGER.info("\n[你已离线]"); } } + + /** + * 根据客户端类型发送消息 + * + * @param clientType 1=会员小程序 2=拍卖师小程序 + * @param message 发送的消息 + */ + public static void sendMessageToUsersByType(Integer clientType, String message) { + for (Map.Entry<String, Session> entry : USERS.entrySet()) { + String key = entry.getKey(); + Session session = entry.getValue(); + if (clientType.equals(USER_TYPES.get(key))) { + sendMessageToUserByText(session, message); + } + } + } } -- Gitblit v1.7.1