39 lines
1.5 KiB
Java
39 lines
1.5 KiB
Java
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<Message> {
|
|
|
|
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);
|
|
}
|
|
}
|
|
}
|