From de7cddcd9a5597ac281fbd619f4f0bba09772386 Mon Sep 17 00:00:00 2001
From: liusuyi <1951119284@qq.com>
Date: Tue, 11 Mar 2025 16:19:35 +0800
Subject: [PATCH] 优化遥测、信道治理、状态 websocket

---
 ard-work/src/main/java/com/ard/tianyu/websocket/utils/WebSocketUtil.java |   28 ++++++++++------------------
 1 files changed, 10 insertions(+), 18 deletions(-)

diff --git a/ard-work/src/main/java/com/ard/tianyu/websocket/utils/WebSocketUtil.java b/ard-work/src/main/java/com/ard/tianyu/websocket/utils/WebSocketUtil.java
index dc78204..63447bb 100644
--- a/ard-work/src/main/java/com/ard/tianyu/websocket/utils/WebSocketUtil.java
+++ b/ard-work/src/main/java/com/ard/tianyu/websocket/utils/WebSocketUtil.java
@@ -26,8 +26,7 @@
 public final class WebSocketUtil {
 
     // 存储 websocket session
-    public static final ConcurrentMap<String, WebSocketSession> ONLINE_USER_SESSIONS = new ConcurrentHashMap<>();
-
+    public static final ConcurrentMap<Long, WebSocketSession> ONLINE_USER_SESSIONS = new ConcurrentHashMap<>();
     /**
      * @param session 用户 session
      * @param message 发送内容
@@ -50,6 +49,11 @@
         }
     }
 
+    public static void sendMessage(Long userId, String message) {
+        WebSocketSession session = ONLINE_USER_SESSIONS.get(userId);
+        sendMessage(session, message);
+    }
+
     /**
      * @param session 用户 session
      * @param message 发送内容
@@ -58,7 +62,7 @@
         if (session == null) {
             return;
         }
-       final InetSocketAddress remoteAddress = session.getRemoteAddress();
+        final InetSocketAddress remoteAddress = session.getRemoteAddress();
         if (remoteAddress == null) {
             return;
         }
@@ -106,6 +110,7 @@
         JSONObject jsonObject = new JSONObject(message);
         ONLINE_USER_SESSIONS.forEach((sessionId, session) -> sendMessage(session, jsonObject.toString()));
     }
+
     /**
      * 推送消息到其他客户端
      *
@@ -115,6 +120,7 @@
         String jsonMessage = JSONObject.toJSONString(message);  // 确保对象转换为 JSON 字符串
         ONLINE_USER_SESSIONS.forEach((sessionId, session) -> sendMessage(session, jsonMessage));
     }
+
     /**
      * 推送消息到其他客户端
      *
@@ -123,19 +129,5 @@
     public static void sendMessageAll(List message) {
         ONLINE_USER_SESSIONS.forEach((sessionId, session) -> sendMessage(session, JSON.toJSONString(message)));
     }
-    /**
-     * @Author 刘苏义
-     * @Description  发送消息给userId_前缀的人
-     * @Date   2024/7/16 10:24
-     * @Param
-     * @return
-     */
-    public static void sendMessagePrefix(String targetId, String message) {
-        String regex = "^" + Pattern.quote(targetId) + "_\\d+$";
-        Pattern pattern = Pattern.compile(regex);
-        ONLINE_USER_SESSIONS.entrySet().stream().filter(entry -> {
-            Matcher matcher = pattern.matcher(entry.getKey());
-            return matcher.matches();
-        }).map(Map.Entry::getValue).forEach(session -> WebSocketUtil.sendMessage(session, message));
-    }
+
 }
\ No newline at end of file

--
Gitblit v1.9.3