| | |
| | | |
| | | import com.ard.tianyu.netty.TyNettyTcpClient; |
| | | import com.ard.tianyu.netty.command.BaseCommand; |
| | | import com.ard.tianyu.netty.command.HeartbeatCommand; |
| | | import com.ard.tianyu.service.ITyService; |
| | | import io.netty.channel.ChannelHandler; |
| | | import io.netty.channel.ChannelHandlerContext; |
| | |
| | | |
| | | @Override |
| | | public void channelRead0(ChannelHandlerContext ctx, BaseCommand command) { |
| | | //InetSocketAddress ipSocket = (InetSocketAddress) ctx.channel().remoteAddress(); |
| | | //String host = ipSocket.getHostString(); |
| | | //int port = ipSocket.getPort(); |
| | | //tyService.processMessage(host + "/" + port, msg); |
| | | InetSocketAddress ipSocket = (InetSocketAddress) ctx.channel().remoteAddress(); |
| | | String host = ipSocket.getHostString(); |
| | | int port = ipSocket.getPort(); |
| | | tyService.processMessage(host + ":" + port, command); |
| | | } |
| | | |
| | | @Override |
| | |
| | | if (event.state() == IdleState.READER_IDLE) { |
| | | log.info("客户端读超时"); |
| | | } else if (event.state() == IdleState.WRITER_IDLE) { |
| | | log.info("写空闲发送⼼跳!"); |
| | | HeartbeatCommand msg = new HeartbeatCommand(System.currentTimeMillis()); |
| | | ctx.writeAndFlush(msg); |
| | | // log.info("写空闲发送⼼跳!"); |
| | | // HeartbeatCommand msg = new HeartbeatCommand(System.currentTimeMillis()); |
| | | //ctx.writeAndFlush(msg); |
| | | } else if (event.state() == IdleState.ALL_IDLE) { |
| | | log.info("客户端所有操作超时"); |
| | | } |
| | |
| | | ctx.channel().eventLoop().schedule(() -> { |
| | | log.error("天宇服务端链接不上,开始重连操作..."); |
| | | try { |
| | | tyNettyTcpClient.initOneConnection(host, port); |
| | | tyNettyTcpClient.initConnection(host, port); |
| | | } catch (Exception e) { |
| | | log.error("天宇服务端连接异常: {}", e.getMessage()); |
| | | } |