diff --git a/src/main/java/com/iot/transport/jt808/service/handler/TCPServerHandler.java b/src/main/java/com/iot/transport/jt808/service/handler/TCPServerHandler.java index 1a845fe..77bf85e 100644 --- a/src/main/java/com/iot/transport/jt808/service/handler/TCPServerHandler.java +++ b/src/main/java/com/iot/transport/jt808/service/handler/TCPServerHandler.java @@ -54,8 +54,22 @@ public class TCPServerHandler extends ChannelInboundHandlerAdapter { // (1) PackHead header = packageData.getPackHead(); Integer msgId = header.getId(); + String terminalPhone = header.getTerminalPhone(); - logger.info("消息头部:msgid={}, phone={}, flowid={}", msgId, header.getTerminalPhone(), header.getFlowId()); + logger.info("消息头部:msgid={}, phone={}, flowid={}", msgId, terminalPhone, header.getFlowId()); + + // Update Session with Phone Number if available + if (terminalPhone != null && !terminalPhone.isEmpty()) { + Session session = sessionManager.findBySessionId(Session.buildId(packageData.getChannel())); + if (session != null) { + // Check if phone mapping needs update + if (!terminalPhone.equals(session.getTerminalPhone())) { + session.setTerminalPhone(terminalPhone); + sessionManager.put(session.getId(), session); + logger.info("Bound phone {} to session {}", terminalPhone, session.getId()); + } + } + } // Broadcast to UI if (apiLogService != null) {