Refine search
@Override public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception { if (evt instanceof IdleStateEvent) { IdleState e = ((IdleStateEvent) evt).state(); if (e == IdleState.READER_IDLE) { LOG.info("Firing channel inactive event. MqttClientId = {}.", NettyUtils.clientID(ctx.channel())); // fire a close that then fire channelInactive to trigger publish of Will ctx.close().addListener(CLOSE_ON_FAILURE); } } else { if (LOG.isTraceEnabled()) { LOG.trace("Firing Netty event CId = {}, eventClass = {}", NettyUtils.clientID(ctx.channel()), evt.getClass().getName()); } super.userEventTriggered(ctx, evt); } } }
@Override public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception { if (evt instanceof IdleStateEvent) { IdleStateEvent event = (IdleStateEvent) evt; if (event.state() == IdleState.WRITER_IDLE) { ChannelUtils.pushToServer(ctx.channel(), ServerEventCode.CODE_CLIENT_HEAD_BEAT, "heartbeat"); } } }
@Override public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception { if (evt instanceof IdleStateEvent) { IdleStateEvent event = (IdleStateEvent) evt; if (event.state().equals(IdleState.ALL_IDLE)) { final String remoteAddress = RemotingHelper.parseChannelRemoteAddr(ctx.channel()); log.warn("NETTY CLIENT PIPELINE: IDLE exception [{}]", remoteAddress); closeChannel(ctx.channel()); if (NettyRemotingClient.this.channelEventListener != null) { NettyRemotingClient.this .putNettyEvent(new NettyEvent(NettyEventType.IDLE, remoteAddress, ctx.channel())); } } } ctx.fireUserEventTriggered(evt); }
@Override public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception { //心跳配置 if (IdleStateEvent.class.isAssignableFrom(evt.getClass())) { IdleStateEvent event = (IdleStateEvent) evt; if (event.state() == IdleState.READER_IDLE) { ctx.writeAndFlush(heartCmd); } } }
@Override public void userEventTriggered(final ChannelHandlerContext ctx, final Object evt) throws Exception { // only need to handle this event if the idle monitor is on if (!channelizer.supportsIdleMonitor()) return; if (evt instanceof IdleStateEvent) { final IdleStateEvent e = (IdleStateEvent) evt; // if no requests (reader) then close, if no writes from server to client then ping. clients should // periodically ping the server, but coming from this direction allows the server to kill channels that // have dead clients on the other end if (e.state() == IdleState.READER_IDLE) { logger.info("Closing channel - client is disconnected after idle period of " + settings.idleConnectionTimeout + " " + ctx.channel()); ctx.close(); } else if (e.state() == IdleState.WRITER_IDLE) { logger.info("Checking channel - sending ping to client after idle period of " + settings.keepAliveInterval + " " + ctx.channel()); ctx.writeAndFlush(channelizer.createIdleDetectionMessage()); } } } }
@Override public void userEventTriggered(ChannelHandlerContext ctx, Object evt) { if (evt instanceof IdleStateEvent) { IdleState e = ((IdleStateEvent) evt).state(); if (e == IdleState.READER_IDLE) { server.getLog().info("timeout " + ctx.channel()); ctx.fireChannelInactive(); ctx.close(); } } } }
/** * Called when a read timeout was detected. */ @Override protected synchronized void channelIdle(ChannelHandlerContext ctx, IdleStateEvent evt) throws Exception { assert evt.state() == IdleState.READER_IDLE; final Channel channel = ctx.channel(); if (channel == null || !channel.isActive() || alreadyTimedOut) { return; } DockerClientConfig dockerClientConfig = getDockerClientConfig(); final Object dockerAPIEndpoint = dockerClientConfig.getDockerHost(); final String msg = "Read timed out: No data received within " + readTimeout + "ms. Perhaps the docker API (" + dockerAPIEndpoint + ") is not responding normally, or perhaps you need to increase the readTimeout value."; final Exception ex = new SocketTimeoutException(msg); ctx.fireExceptionCaught(ex); alreadyTimedOut = true; } }
@Override public void userEventTriggered(ChannelHandlerContext ctx, Object evt) { if (evt instanceof IdleStateEvent) { log.trace("State handler. Hardware timeout disconnect. Event : {}. Closing.", ((IdleStateEvent) evt).state()); ctx.close(); } else { ctx.fireUserEventTriggered(evt); } }
@Override public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception { if (evt instanceof IdleStateEvent) { IdleStateEvent e = (IdleStateEvent) evt; if (e.state() == IdleState.WRITER_IDLE) { logger.debug("Sending PingWebSocketFrame to --> [ " + ctx.channel().remoteAddress().toString() + "]"); ctx.writeAndFlush(new PingWebSocketFrame()); } } }
@Override public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception { if (!(evt instanceof IdleStateEvent)) { ctx.fireUserEventTriggered(evt); return; } // 当空闲时,发心跳包 IdleStateEvent e = (IdleStateEvent) evt; if (e.state() == IdleState.WRITER_IDLE) { final Request request = Request.builder().command(Commands.HEARTBEAT).build(); ctx.write(Message.request().jsonData(request).build()); } else if (e.state() == IdleState.READER_IDLE) { // 长时间没有收到服务器的回应,说明网络出现问题 logger.error("long time do not reveive data from server, please check network."); ctx.channel().close(); } }
@Override protected final void channelIdle(ChannelHandlerContext ctx, IdleStateEvent evt) throws Exception { assert evt.state() == IdleState.READER_IDLE; readTimedOut(ctx); }
@Override public void userEventTriggered(ChannelHandlerContext ctx, Object evt) { if (evt instanceof IdleStateEvent) { IdleStateEvent e = (IdleStateEvent) evt; if (e.state() == IdleState.READER_IDLE || e.state() == IdleState.ALL_IDLE) { final IsoMessage echoMessage = createEchoMessage(); ctx.write(echoMessage); ctx.flush(); } } }
@Override public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception { if (evt instanceof IdleStateEvent && ((IdleStateEvent) evt).state() == IdleState.ALL_IDLE) { context.executeFromIO(v -> conn.handleIdle()); } else { ctx.fireUserEventTriggered(evt); } } }
@Override public void userEventTriggered(ChannelHandlerContext ctx, Object evt) { if (evt instanceof IdleStateEvent) { IdleStateEvent e = (IdleStateEvent) evt; if ((e.state() == IdleState.READER_IDLE) && e.isFirst()) { ClientConnection.this.shutdown(DefaultMessageType.QUIT_PING_TIMEOUT, true); } } } });
@Override public void userEventTriggered(ChannelHandlerContext ctx, Object evt) { if (evt instanceof IdleStateEvent) { IdleStateEvent idleStateEvent = (IdleStateEvent)evt; if (idleStateEvent.state() == IdleState.READER_IDLE) { if (LOGGER.isInfoEnabled()) { LOGGER.info("channel" + ctx.channel() + " read idle."); } try { nettyClientKeyPool.invalidateObject(poolKeyMap.get(ctx.channel().remoteAddress()), ctx.channel()); } catch (Exception exx) { LOGGER.error(exx.getMessage()); } finally { releaseChannel(ctx.channel(), getAddressFromContext(ctx)); } } if (idleStateEvent == IdleStateEvent.WRITER_IDLE_STATE_EVENT) { try { if (LOGGER.isInfoEnabled()) { LOGGER.info("will send ping msg,channel" + ctx.channel()); } sendRequest(ctx.channel(), HeartbeatMessage.PING); } catch (Throwable throwable) { LOGGER.error("", "send request error", throwable); } } } }
@Override public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception { if (evt instanceof IdleStateEvent) { IdleStateEvent event = (IdleStateEvent) evt; if (event.state().equals(IdleState.ALL_IDLE)) { final String remoteAddress = RemotingHelper.parseChannelRemoteAddr(ctx.channel()); log.warn("NETTY SERVER PIPELINE: IDLE exception [{}]", remoteAddress); RemotingUtil.closeChannel(ctx.channel()); if (NettyRemotingServer.this.channelEventListener != null) { NettyRemotingServer.this .putNettyEvent(new NettyEvent(NettyEventType.IDLE, remoteAddress, ctx.channel())); } } } ctx.fireUserEventTriggered(evt); }
@Override public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception { try { if (evt instanceof IdleStateEvent) { IdleStateEvent idleStateEvent = (IdleStateEvent) evt; IdleState state = idleStateEvent.state(); if (state == IdleState.ALL_IDLE) { ctx.close(); } } } finally { super.userEventTriggered(ctx, evt); } }
@Override public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception { if (evt instanceof IdleStateEvent) { IdleState state = ((IdleStateEvent) evt).state(); if (state == IdleState.WRITER_IDLE) { // write heartbeat to server ctx.writeAndFlush(Heartbeats.heartbeatContent()); } } else { super.userEventTriggered(ctx, evt); } } }