From fd5f1d86f334e814ccb8c2d679373fa7e373cb5e Mon Sep 17 00:00:00 2001
From: liusuyi <1951119284@qq.com>
Date: Tue, 04 Mar 2025 15:05:21 +0800
Subject: [PATCH] 优化
---
ard-work/src/main/java/com/ard/tianyu/websocket/utils/WebSocketUtil.java | 27 +++++++++++----------------
1 files changed, 11 insertions(+), 16 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 8392fff..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,10 +26,7 @@
public final class WebSocketUtil {
// 存储 websocket session
- public static final ConcurrentMap<String, WebSocketSession> ONLINE_USER_SESSIONS = new ConcurrentHashMap<>();
- // 存储 拉流 websocket session
- public static final ConcurrentMap<String, WebSocketSession> STREAM_ONLINE_USER_SESSIONS = new ConcurrentHashMap<>();
-
+ public static final ConcurrentMap<Long, WebSocketSession> ONLINE_USER_SESSIONS = new ConcurrentHashMap<>();
/**
* @param session 用户 session
* @param message 发送内容
@@ -52,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 发送内容
@@ -60,7 +62,7 @@
if (session == null) {
return;
}
- final InetSocketAddress remoteAddress = session.getRemoteAddress();
+ final InetSocketAddress remoteAddress = session.getRemoteAddress();
if (remoteAddress == null) {
return;
}
@@ -98,6 +100,7 @@
public static void sendMessageAll(String message) {
ONLINE_USER_SESSIONS.forEach((sessionId, session) -> sendMessage(session, message));
}
+
/**
* 推送消息到其他客户端
*
@@ -107,6 +110,7 @@
JSONObject jsonObject = new JSONObject(message);
ONLINE_USER_SESSIONS.forEach((sessionId, session) -> sendMessage(session, jsonObject.toString()));
}
+
/**
* 推送消息到其他客户端
*
@@ -116,6 +120,7 @@
String jsonMessage = JSONObject.toJSONString(message); // 确保对象转换为 JSON 字符串
ONLINE_USER_SESSIONS.forEach((sessionId, session) -> sendMessage(session, jsonMessage));
}
+
/**
* 推送消息到其他客户端
*
@@ -124,15 +129,5 @@
public static void sendMessageAll(List message) {
ONLINE_USER_SESSIONS.forEach((sessionId, session) -> sendMessage(session, JSON.toJSONString(message)));
}
- /**
- * 发送消息给userId_前缀的人
- */
- 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