package com.tongran.agenttcp.server.handler; import com.tongran.agenttcp.server.model.Message; import com.tongran.agenttcp.server.netty.core.session.Session; import com.tongran.agenttcp.server.netty.core.session.SessionManager; import com.tongran.agenttcp.utils.AssertLog; import io.netty.channel.ChannelHandler; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.SimpleChannelInboundHandler; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; @Component @ChannelHandler.Sharable public class AgentDispatcherHandler extends SimpleChannelInboundHandler { protected final SessionManager sessionManager; public AgentDispatcherHandler() { this.sessionManager = SessionManager.getInstance(); } @Override protected void channelRead0(ChannelHandlerContext ctx, Message msg) { // AssertLog.info(">>>>>>[要处理的终端数据] {}", msg.toString()); String clientId = msg.getClientId(); if (StringUtils.isBlank(clientId)) { AssertLog.error("<<<<<<错误的信息from:{}", ctx.channel().remoteAddress()); return; } Session session = Session.buildSession(ctx, clientId); sessionManager.put(clientId, session); if (StringUtils.isNotBlank(msg.getData())) { // AssertLog.info(">>>>>>[getSessionById的终端数据] {}", sessionManager.getSessionById(clientId)); sessionManager.writeAndFlush(sessionManager.getSessionById(clientId).getChannel(), msg); } } }