From 05c1b69b9a694cf99e9f07f12ebf034cb2450f5f Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期一, 10 二月 2025 10:15:38 +0800
Subject: [PATCH] websocket改造

---
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/websocket/WebSocketUsers.java |   15 ++++++++++++++-
 1 files changed, 14 insertions(+), 1 deletions(-)

diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/websocket/WebSocketUsers.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/websocket/WebSocketUsers.java
index 9b162c2..0b2f9cf 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/websocket/WebSocketUsers.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/websocket/WebSocketUsers.java
@@ -20,11 +20,14 @@
 
     private static Map<String, Session> USERS = new ConcurrentHashMap<>();
     private static Map<String, Integer> USER_TYPES = new ConcurrentHashMap<>();
+    // 保存用户id与session映射
+    private static Map<String, Session> USER_ID_MAP = new ConcurrentHashMap<>();
 
-    public static void put(String key, Session session, Integer clientType)
+    public static void put(String key, Session session, Integer clientType, Long userId)
     {
         USERS.put(key, session);
         USER_TYPES.put(key, clientType);
+        USER_ID_MAP.put(userId.toString(), session);
     }
 
     public static boolean remove(Session session)
@@ -120,4 +123,14 @@
             }
         }
     }
+
+    /**
+     * 根据用户id进行点对点推送
+     * @param userId 用户id
+     * @param message 消息内容
+     */
+    public static void sendMessageToUserById(Long userId, String message) {
+        Session session = USER_ID_MAP.get(userId.toString());
+        sendMessageToUserByText(session, message);
+    }
 }

--
Gitblit v1.7.1