| | |
| | | package com.ard.route.websocket.handler; |
| | | |
| | | import com.ard.route.websocket.MiWebSocketSessionManager; |
| | | import com.ard.route.websocket.utils.MiWebSocketUtils; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.stereotype.Component; |
| | |
| | | // 处理接收到的消息 |
| | | String payload = message.getPayload(); |
| | | log.info("【mi_websocket】Received message: " + payload); |
| | | log.info("【mi_websocket】size: " + MiWebSocketUtils.ONLINE_USER_SESSIONS.size()); |
| | | log.info("【mi_websocket】size: " + MiWebSocketSessionManager.getOnlineUserCount()); |
| | | } |
| | | |
| | | @Override |
| | | public void afterConnectionEstablished(WebSocketSession session) { |
| | | String userIdStr = (String) session.getAttributes().get("userId"); |
| | | if (userIdStr == null || userIdStr.isBlank()) { |
| | | return; |
| | | } |
| | | Long userId = Long.parseLong(userIdStr); |
| | | log.info("【mi_websocket】Connected: " + session.getId()); |
| | | String userId = (String) session.getAttributes().get("userId"); |
| | | MiWebSocketUtils.ONLINE_USER_SESSIONS.put(userId, session); |
| | | log.info("【mi_websocket】size: " + MiWebSocketUtils.ONLINE_USER_SESSIONS.size()); |
| | | MiWebSocketSessionManager.addSession(userId, session); |
| | | log.info("【mi_websocket】size: " + MiWebSocketSessionManager.getOnlineUserCount()); |
| | | } |
| | | |
| | | @Override |
| | | public void afterConnectionClosed(WebSocketSession session, CloseStatus status) { |
| | | String userIdStr = (String) session.getAttributes().get("userId"); |
| | | if (userIdStr == null || userIdStr.isBlank()) { |
| | | return; |
| | | } |
| | | Long userId = Long.parseLong(userIdStr); |
| | | MiWebSocketSessionManager.removeSession(userId); |
| | | log.info("【mi_websocket】Disconnected: " + session.getId()); |
| | | String userId = (String) session.getAttributes().get("userId"); |
| | | MiWebSocketUtils.ONLINE_USER_SESSIONS.remove(userId); |
| | | log.info("【mi_websocket】size: " + MiWebSocketUtils.ONLINE_USER_SESSIONS.size()); |
| | | MiWebSocketSessionManager.removeSession(userId); |
| | | log.info("【mi_websocket】size: " + MiWebSocketSessionManager.getOnlineUserCount()); |
| | | } |
| | | |
| | | } |