liusuyi
2025-03-04 fd5f1d86f334e814ccb8c2d679373fa7e373cb5e
ard-work/src/main/java/com/ard/tianyu/websocket/utils/WebSocketUtil.java
@@ -26,7 +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 发送内容
@@ -49,7 +49,7 @@
        }
    }
    public static void sendMessage(String userId, String message) {
    public static void sendMessage(Long userId, String message) {
        WebSocketSession session = ONLINE_USER_SESSIONS.get(userId);
        sendMessage(session, message);
    }
@@ -130,15 +130,4 @@
        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));
    }
}