| | |
| | | package com.ard.tianyu.netty.handler; |
| | | |
| | | import com.ard.tianyu.model.cache.TyTcpServerCache; |
| | | import com.ard.tianyu.netty.TyNettyTcpClient; |
| | | import com.ard.tianyu.netty.command.BaseCommand; |
| | | import com.ard.tianyu.netty.command.HeartbeatCommand; |
| | | import com.ard.tianyu.netty.command.BaseCmd; |
| | | import com.ard.tianyu.service.ITyService; |
| | | import io.netty.channel.ChannelHandler; |
| | | import io.netty.channel.ChannelHandlerContext; |
| | |
| | | @Component |
| | | @Slf4j |
| | | @ChannelHandler.Sharable |
| | | public class ClientHandler extends SimpleChannelInboundHandler<BaseCommand> { |
| | | public class ClientHandler extends SimpleChannelInboundHandler<BaseCmd> { |
| | | |
| | | @Resource |
| | | private ITyService tyService; |
| | |
| | | private TyNettyTcpClient tyNettyTcpClient; |
| | | |
| | | @Override |
| | | public void channelRead0(ChannelHandlerContext ctx, BaseCommand command) { |
| | | public void channelRead0(ChannelHandlerContext ctx, BaseCmd command) { |
| | | InetSocketAddress ipSocket = (InetSocketAddress) ctx.channel().remoteAddress(); |
| | | String host = ipSocket.getHostString(); |
| | | int port = ipSocket.getPort(); |
| | | tyService.processMessage(host + ":" + port, command); |
| | | tyService.processReplyMessage(host + ":" + port, command); |
| | | } |
| | | |
| | | @Override |
| | |
| | | int port = ipSocket.getPort(); |
| | | String host = ipSocket.getHostString(); |
| | | log.error("与天宇服务{}:{}连接断开!", host, port); |
| | | |
| | | TyTcpServerCache.putTcpServerCache(host + ":" + port, false); |
| | | ctx.channel().eventLoop().schedule(() -> { |
| | | log.error("天宇服务端链接不上,开始重连操作..."); |
| | | try { |