List of usage examples for io.netty.handler.codec.http2 Http2Connection numActiveStreams
int numActiveStreams();
From source file:io.grpc.netty.NettyServerHandler.java
License:Apache License
private NettyServerHandler(ChannelPromise channelUnused, final Http2Connection connection, ServerTransportListener transportListener, List<? extends ServerStreamTracer.Factory> streamTracerFactories, TransportTracer transportTracer, Http2ConnectionDecoder decoder, Http2ConnectionEncoder encoder, Http2Settings settings, int maxMessageSize, long keepAliveTimeInNanos, long keepAliveTimeoutInNanos, long maxConnectionIdleInNanos, long maxConnectionAgeInNanos, long maxConnectionAgeGraceInNanos, final KeepAliveEnforcer keepAliveEnforcer) { super(channelUnused, decoder, encoder, settings); final MaxConnectionIdleManager maxConnectionIdleManager; if (maxConnectionIdleInNanos == MAX_CONNECTION_IDLE_NANOS_DISABLED) { maxConnectionIdleManager = null; } else {//ww w. j a va2s .c o m maxConnectionIdleManager = new MaxConnectionIdleManager(maxConnectionIdleInNanos) { @Override void close(ChannelHandlerContext ctx) { if (gracefulShutdown == null) { gracefulShutdown = new GracefulShutdown("max_idle", null); gracefulShutdown.start(ctx); ctx.flush(); } } }; } connection.addListener(new Http2ConnectionAdapter() { @Override public void onStreamActive(Http2Stream stream) { if (connection.numActiveStreams() == 1) { keepAliveEnforcer.onTransportActive(); if (maxConnectionIdleManager != null) { maxConnectionIdleManager.onTransportActive(); } } } @Override public void onStreamClosed(Http2Stream stream) { if (connection.numActiveStreams() == 0) { keepAliveEnforcer.onTransportIdle(); if (maxConnectionIdleManager != null) { maxConnectionIdleManager.onTransportIdle(); } } } }); checkArgument(maxMessageSize >= 0, "maxMessageSize must be >= 0"); this.maxMessageSize = maxMessageSize; this.keepAliveTimeInNanos = keepAliveTimeInNanos; this.keepAliveTimeoutInNanos = keepAliveTimeoutInNanos; this.maxConnectionIdleManager = maxConnectionIdleManager; this.maxConnectionAgeInNanos = maxConnectionAgeInNanos; this.maxConnectionAgeGraceInNanos = maxConnectionAgeGraceInNanos; this.keepAliveEnforcer = checkNotNull(keepAliveEnforcer, "keepAliveEnforcer"); streamKey = encoder.connection().newKey(); this.transportListener = checkNotNull(transportListener, "transportListener"); this.streamTracerFactories = checkNotNull(streamTracerFactories, "streamTracerFactories"); this.transportTracer = checkNotNull(transportTracer, "transportTracer"); // Set the frame listener on the decoder. decoder().frameListener(new FrameListener()); }
From source file:io.vertx.core.http.impl.Http2ConnectionBase.java
License:Open Source License
private void checkShutdownHandler() { if (!shutdown) { Http2Connection conn = handler.connection(); if ((conn.goAwayReceived() || conn.goAwaySent()) && conn.numActiveStreams() == 0) { shutdown = true;// w ww. jav a 2s. c o m Handler<Void> handler = shutdownHandler; if (handler != null) { context.executeFromIO(() -> { shutdownHandler.handle(null); }); } } } }