@Override public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception { // Track when there's an inflight request. if (evt instanceof HttpLifecycleChannelHandler.StartEvent) { requestInflight.set(Boolean.TRUE); } else if (evt instanceof HttpLifecycleChannelHandler.CompleteEvent) { requestInflight.set(Boolean.FALSE); } super.userEventTriggered(ctx, evt); }
@Override public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception { if (evt instanceof PooledConnectionReleaseEvent) { cancelTimeoutSchedule(ctx); } super.userEventTriggered(ctx, evt); }
@Override public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception { if (evt instanceof IdleStateEvent) { NettyChannel channel = NettyChannel.getOrAddChannel(ctx.channel(), url, handler); try { logger.info("IdleStateEvent triggered, close channel " + channel); channel.close(); } finally { NettyChannel.removeChannelIfDisconnected(ctx.channel()); } } super.userEventTriggered(ctx, evt); }
@Override public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception { // Track when there's an inflight request. if (evt instanceof HttpLifecycleChannelHandler.StartEvent) { requestInflight.set(Boolean.TRUE); } else if (evt instanceof HttpLifecycleChannelHandler.CompleteEvent) { requestInflight.set(Boolean.FALSE); } super.userEventTriggered(ctx, evt); }
/** * * @see io.netty.channel.ChannelInboundHandlerAdapter#userEventTriggered(io.netty.channel.ChannelHandlerContext, java.lang.Object) */ @Override public void userEventTriggered(final ChannelHandlerContext ctx, Object evt) throws Exception { if (evt instanceof IdleStateEvent) { try { logger.warn("Connection idle, close it from server side: {}", RemotingUtil.parseRemoteAddress(ctx.channel())); ctx.close(); } catch (Exception e) { logger.warn("Exception caught when closing connection in ServerIdleHandler.", e); } } else { super.userEventTriggered(ctx, evt); } } }
@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(final ChannelHandlerContext ctx, Object evt) throws Exception { if (evt instanceof SslHandshakeCompletionEvent) { logger.trace(format(ctx, "SslHandshakeCompletionEvent: "), ((SslHandshakeCompletionEvent) evt).cause()); } else if (evt instanceof Exception) { logger.trace(format(ctx, "Exception: "), (Exception) evt); } else { logger.trace(format(ctx, "USER_EVENT: " + evt)); } super.userEventTriggered(ctx, evt); }
@Override public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception { if (evt instanceof RequestReadIfRequiredEvent) { RequestReadIfRequiredEvent requestReadIfRequiredEvent = (RequestReadIfRequiredEvent) evt; if (requestReadIfRequiredEvent.shouldReadMore(ctx)) { read(ctx); } } super.userEventTriggered(ctx, evt); }
/** * * @see io.netty.channel.ChannelInboundHandlerAdapter#userEventTriggered(io.netty.channel.ChannelHandlerContext, java.lang.Object) */ @Override public void userEventTriggered(final ChannelHandlerContext ctx, Object evt) throws Exception { if (evt instanceof IdleStateEvent) { ProtocolCode protocolCode = ctx.channel().attr(Connection.PROTOCOL).get(); Protocol protocol = ProtocolManager.getProtocol(protocolCode); protocol.getHeartbeatTrigger().heartbeatTriggered(ctx); } else { super.userEventTriggered(ctx, evt); } } }
@Override public void userEventTriggered(ChannelHandlerContext ctx, Object event) throws Exception { if (event instanceof ConnectionEventType) { switch ((ConnectionEventType) event) { case CONNECT: Channel channel = ctx.channel(); if (null != channel) { Connection connection = channel.attr(Connection.CONNECTION).get(); this.onEvent(connection, connection.getUrl().getOriginUrl(), ConnectionEventType.CONNECT); } else { logger .warn("channel null when handle user triggered event in ConnectionEventHandler!"); } break; default: return; } } else { super.userEventTriggered(ctx, event); } }
@Override public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception { if (evt instanceof CompleteEvent) { final CompleteReason reason = ((CompleteEvent) evt).getReason(); if ((reason != SESSION_COMPLETE) && (edgeProxy != null)) { LOG.error("Origin request completed with reason other than COMPLETE: {}, {}", reason.name(), ChannelUtils.channelInfoForLogging(ctx.channel())); final ZuulException ze = new ZuulException("CompleteEvent", reason.name(), true); edgeProxy.errorFromOrigin(ze); } // First let this event propagate along the pipeline, before cleaning vars from the channel. // See channelWrite() where these vars are first set onto the channel. try { super.userEventTriggered(ctx, evt); } finally { postCompleteHook(ctx, evt); } } else if (evt instanceof IdleStateEvent) { if (edgeProxy != null) { LOG.error("Origin request received IDLE event: {}", ChannelUtils.channelInfoForLogging(ctx.channel())); edgeProxy.errorFromOrigin(new OutboundException(READ_TIMEOUT, edgeProxy.getRequestAttempts())); } super.userEventTriggered(ctx, evt); } else { super.userEventTriggered(ctx, evt); } }
@Override public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception { if (evt instanceof IdleStateEvent) { try { NettyChannel channel = NettyChannel.getOrAddChannel(ctx.channel(), url, handler); if (logger.isDebugEnabled()) { logger.debug("IdleStateEvent triggered, send heartbeat to channel " + channel); } Request req = new Request(); req.setVersion(Version.getProtocolVersion()); req.setTwoWay(true); req.setEvent(Request.HEARTBEAT_EVENT); channel.send(req); } finally { NettyChannel.removeChannelIfDisconnected(ctx.channel()); } } else { super.userEventTriggered(ctx, evt); } }
final State existingState = state; state = State.ChannelSubscribed; super.userEventTriggered(ctx, evt); final ChannelPipeline pipeline = ctx.channel().pipeline(); switch (existingState) { ConnectionCreationFailedEvent failedEvent = (ConnectionCreationFailedEvent) evt; onConnectFailedEvent(failedEvent); super.userEventTriggered(ctx, evt); } else { super.userEventTriggered(ctx, evt);
/** * @see io.netty.channel.ChannelInboundHandlerAdapter#userEventTriggered(io.netty.channel.ChannelHandlerContext, Object) */ @Override public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception { if (evt == EnableAutoRead.INSTANCE) { channel.config().setAutoRead(true); } else if (evt instanceof Reset) { reset(); } else if (evt instanceof PingBeforeActivate) { PingBeforeActivate pba = (PingBeforeActivate) evt; stack.addFirst(pba.getCommand()); ctx.writeAndFlush(pba.getCommand()); return; } super.userEventTriggered(ctx, evt); }
@Override public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception { if (evt instanceof SslHandshakeCompletionEvent) { handshakeDone = true; SslHandshakeCompletionEvent handshakeCompletionEvent = (SslHandshakeCompletionEvent) evt; if (handshakeCompletionEvent.isSuccess()) { ctx.fireUserEventTriggered(EmitConnectionEvent.INSTANCE); } else { ctx.fireUserEventTriggered(new ConnectionCreationFailedEvent(handshakeCompletionEvent.cause())); } } super.userEventTriggered(ctx, evt); } }
super.userEventTriggered(ctx, evt);
@Override public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception { if (evt instanceof CompleteEvent) { final CompleteReason reason = ((CompleteEvent) evt).getReason(); if ((reason != SESSION_COMPLETE) && (edgeProxy != null)) { LOG.error("Origin request completed with reason other than COMPLETE: {}, {}", reason.name(), ChannelUtils.channelInfoForLogging(ctx.channel())); final ZuulException ze = new ZuulException("CompleteEvent", reason.name(), true); edgeProxy.errorFromOrigin(ze); } // First let this event propagate along the pipeline, before cleaning vars from the channel. // See channelWrite() where these vars are first set onto the channel. try { super.userEventTriggered(ctx, evt); } finally { postCompleteHook(ctx, evt); } } else if (evt instanceof IdleStateEvent) { if (edgeProxy != null) { LOG.error("Origin request received IDLE event: {}", ChannelUtils.channelInfoForLogging(ctx.channel())); edgeProxy.errorFromOrigin(new OutboundException(READ_TIMEOUT, edgeProxy.getRequestAttempts())); } super.userEventTriggered(ctx, evt); } else { super.userEventTriggered(ctx, evt); } }
super.userEventTriggered(ctx, evt);
@Override public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception { if (evt instanceof ConnectionReuseEvent) { responseState = new ResponseState(); // Reset the state on reuse. responseState.setConnection((AbstractConnectionEvent<?>) evt); } else if (evt instanceof NewRxConnectionEvent) { responseState.setConnection((AbstractConnectionEvent<?>) evt); } else if (evt instanceof PooledConnectionReleasedEvent) { responseState.onConnectionClose(); } super.userEventTriggered(ctx, evt); }
@Override public void userEventTriggered(final ChannelHandlerContext ctx, Object evt) throws Exception { if (evt instanceof SslHandshakeCompletionEvent) { logger.trace(format(ctx, "SslHandshakeCompletionEvent: "), ((SslHandshakeCompletionEvent) evt).cause()); } else if (evt instanceof Exception) { logger.trace(format(ctx, "Exception: "), (Exception) evt); } else { logger.trace(format(ctx, "USER_EVENT: " + evt)); } super.userEventTriggered(ctx, evt); }