# xp-robotaxi-push-message-boot 代码问题分析 本文档记录了对该模块代码实现中发现的问题。 ## 问题列表 ### `WebSocketUserConnectionManager.java` **内存泄漏潜在风险** (lines 24, 30, 36): ```java private static ConcurrentHashMap> userConnections = ... private static ConcurrentHashMap sessionIdUserIdMap = ... private static ConcurrentHashMap sessionIdSessionMap = ... ``` - 所有连接 map 都是 `static` - 即使组件被重新加载(例如开发环境热重载),static map 仍然保持对所有 session 的引用 - 会导致内存泄漏,因为 session 无法被 GC - 应该使用实例字段而不是 static ### `PushMessageWebSocketHandler.java` **1. 连接建立时缺少认证**: - 连接立即建立,认证在之后通过认证消息进行 - 如果认证永远不会发生或失败,连接仍然保持打开 - 会导致半开放连接累积,占用资源 **2. 异常吞掉** (line 74-77): ```java } catch (Exception e) { // treat as plain text } ``` - 捕获解析 JSON 时的任何异常,当作普通文本处理 - 这会吞掉真正的处理异常,应该适当处理