| File was renamed from ard-work/src/main/java/com/ard/tianyu/websocket/utils/WebSocketUtil.java |
| | |
| | | package com.ard.tianyu.websocket.utils; |
| | | package com.ard.tianyu.component.websocket.utils; |
| | | |
| | | import com.alibaba.fastjson2.JSON; |
| | | import com.alibaba.fastjson2.JSONObject; |
| | | import com.ard.tianyu.component.websocket.WebSocketSessionManager; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.web.socket.TextMessage; |
| | | import org.springframework.web.socket.WebSocketSession; |
| | |
| | | @Slf4j |
| | | public final class WebSocketUtil { |
| | | |
| | | // 存储 websocket session |
| | | public static final ConcurrentMap<Long, WebSocketSession> ONLINE_USER_SESSIONS = new ConcurrentHashMap<>(); |
| | | /** |
| | | * @param session 用户 session |
| | | * @param message 发送内容 |
| | |
| | | } |
| | | |
| | | public static void sendMessage(Long userId, String message) { |
| | | WebSocketSession session = ONLINE_USER_SESSIONS.get(userId); |
| | | WebSocketSession session = WebSocketSessionManager.getSession(userId); |
| | | sendMessage(session, message); |
| | | } |
| | | |
| | |
| | | * @param message |
| | | */ |
| | | public static void sendMessageAll(String message) { |
| | | ONLINE_USER_SESSIONS.forEach((sessionId, session) -> sendMessage(session, message)); |
| | | WebSocketSessionManager.broadcast(message); |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | public static void sendMessageAll(Map message) { |
| | | JSONObject jsonObject = new JSONObject(message); |
| | | ONLINE_USER_SESSIONS.forEach((sessionId, session) -> sendMessage(session, jsonObject.toString())); |
| | | WebSocketSessionManager.broadcast(jsonObject.toString()); |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | public static void sendMessageAll(Object message) { |
| | | String jsonMessage = JSONObject.toJSONString(message); // 确保对象转换为 JSON 字符串 |
| | | ONLINE_USER_SESSIONS.forEach((sessionId, session) -> sendMessage(session, jsonMessage)); |
| | | WebSocketSessionManager.broadcast(jsonMessage); |
| | | } |
| | | |
| | | /** |
| | |
| | | * @param message |
| | | */ |
| | | public static void sendMessageAll(List message) { |
| | | ONLINE_USER_SESSIONS.forEach((sessionId, session) -> sendMessage(session, JSON.toJSONString(message))); |
| | | WebSocketSessionManager.broadcast(JSON.toJSONString(message)); |
| | | } |
| | | |
| | | } |