nishiwei
6 days ago 3f43e40ed1a1e9f66b3ad2862da9dbc4b710c712
ard-route/src/main/java/com/ard/route/websocket/utils/MiWebSocketUtils.java
@@ -2,6 +2,7 @@
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.ard.route.websocket.MiWebSocketSessionManager;
import com.ard.work.component.websocket.WebSocketSessionManager;
import com.ard.work.component.websocket.utils.WebSocketUtil;
import com.ard.work.domain.message.BaseMessage;
@@ -13,14 +14,9 @@
import java.net.InetSocketAddress;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
@Slf4j
public class MiWebSocketUtils {
    // 用于存储所有打开的WebSocket会话
    public static final ConcurrentMap<String, WebSocketSession> ONLINE_USER_SESSIONS = new ConcurrentHashMap<>();
    /**
     * @param session 用户 session
@@ -45,7 +41,7 @@
    }
    public static void sendMessage(Long userId, String message) {
        WebSocketSession session = WebSocketSessionManager.getSession(userId);
        WebSocketSession session = MiWebSocketSessionManager.getSession(userId);
        sendMessage(session, message);
    }
@@ -93,7 +89,7 @@
     * @param message
     */
    public static void sendMessageAll(String message) {
        ONLINE_USER_SESSIONS.forEach((sessionId, session) -> sendMessage(session, message));
        MiWebSocketSessionManager.broadcast(message);
    }
    /**
@@ -103,7 +99,17 @@
     */
    public static void sendMessageAll(Map message) {
        JSONObject jsonObject = new JSONObject(message);
        ONLINE_USER_SESSIONS.forEach((sessionId, session) -> sendMessage(session, jsonObject.toString()));
        MiWebSocketSessionManager.broadcast(jsonObject.toString());
    }
    /**
     * 推送消息到其他客户端
     *
     * @param message
     */
    public static void sendMessageAll(Object message) {
        String jsonMessage = JSONObject.toJSONString(message);  // 确保对象转换为 JSON 字符串
        WebSocketSessionManager.broadcast(jsonMessage);
    }
    /**
@@ -112,7 +118,7 @@
     * @param message
     */
    public static void sendMessageAll(List message) {
        ONLINE_USER_SESSIONS.forEach((sessionId, session) -> sendMessage(session, JSON.toJSONString(message)));
        WebSocketSessionManager.broadcast(JSON.toJSONString(message));
    }
    // 发送消息到所有 WebSocket 客户端