List of usage examples for io.netty.handler.codec.http2 Http2Settings defaultSettings
public static Http2Settings defaultSettings()
From source file:com.turo.pushy.apns.server.BenchmarkApnsServer.java
License:Open Source License
@Override protected void addHandlersToPipeline(final SSLSession sslSession, final ChannelPipeline pipeline) { pipeline.addLast(new BenchmarkApnsServerHandler.BenchmarkApnsServerHandlerBuilder() .initialSettings(Http2Settings.defaultSettings().maxConcurrentStreams(this.maxConcurrentStreams)) .build());//from w w w .ja v a 2 s . co m }
From source file:com.turo.pushy.apns.server.MockApnsServer.java
License:Open Source License
@Override protected void addHandlersToPipeline(final SSLSession sslSession, final ChannelPipeline pipeline) throws Exception { final PushNotificationHandler pushNotificationHandler = this.handlerFactory.buildHandler(sslSession); final MockApnsServerHandler serverHandler = new MockApnsServerHandler.MockApnsServerHandlerBuilder() .pushNotificationHandler(pushNotificationHandler) .initialSettings(Http2Settings.defaultSettings().maxConcurrentStreams(this.maxConcurrentStreams)) .listener(this.listener).build(); pipeline.addLast(serverHandler);/*from w w w.java 2 s .c o m*/ }
From source file:io.gatling.http.client.impl.DefaultHttpClient.java
License:Apache License
private Future<Channel> installHttp2Handler(HttpTx tx, Channel channel, ChannelPool channelPool) { Promise<Channel> whenAlpn = channel.eventLoop().newPromise(); channel.pipeline().addAfter(SSL_HANDLER, ALPN_HANDLER, new ApplicationProtocolNegotiationHandler(ApplicationProtocolNames.HTTP_1_1) { @Override/* w w w . java 2 s .co m*/ protected void configurePipeline(ChannelHandlerContext ctx, String protocol) throws Exception { switch (protocol) { case ApplicationProtocolNames.HTTP_2: LOGGER.debug("ALPN led to HTTP/2 with remote {}", tx.request.getUri().getHost()); tx.listener.onProtocolAwareness(true); Http2Connection connection = new DefaultHttp2Connection(false); HttpToHttp2ConnectionHandler http2Handler = new HttpToHttp2ConnectionHandlerBuilder() .initialSettings(Http2Settings.defaultSettings()) // FIXME override? .connection(connection) .frameListener(new DelegatingDecompressorFrameListener(connection, new ChunkedInboundHttp2ToHttpAdapter(connection, false, true, whenAlpn))) .build(); ctx.pipeline().addLast(HTTP2_HANDLER, http2Handler).addLast(APP_HTTP2_HANDLER, new Http2AppHandler(connection, http2Handler, channelPool, config)); channelPool.offer(channel); SslHandler sslHandler = (SslHandler) ctx.pipeline().get(SSL_HANDLER); Set<String> subjectAlternativeNames = Tls .extractSubjectAlternativeNames(sslHandler.engine()); if (!subjectAlternativeNames.isEmpty()) { channelPool.addCoalescedChannel(subjectAlternativeNames, (InetSocketAddress) channel.remoteAddress(), channel, tx.key); } break; case ApplicationProtocolNames.HTTP_1_1: LOGGER.debug("ALPN led to HTTP/1 with remote {}", tx.request.getUri().getHost()); if (tx.request.isHttp2PriorKnowledge()) { IllegalStateException e = new IllegalStateException( "HTTP/2 Prior knowledge was set on host " + tx.request.getUri().getHost() + " but it only supports HTTP/1"); whenAlpn.setFailure(e); throw e; } tx.listener.onProtocolAwareness(false); ctx.pipeline() .addBefore(CHUNKED_WRITER_HANDLER, HTTP_CLIENT_CODEC, newHttpClientCodec()) .addBefore(CHUNKED_WRITER_HANDLER, INFLATER_HANDLER, newHttpContentDecompressor()) .addAfter(CHUNKED_WRITER_HANDLER, APP_HTTP_HANDLER, new HttpAppHandler(DefaultHttpClient.this, channelPool, config)); whenAlpn.setSuccess(ctx.channel()); break; default: IllegalStateException e = new IllegalStateException("Unknown protocol: " + protocol); whenAlpn.setFailure(e); ctx.close(); // FIXME do we really need to throw? throw e; } } }); whenAlpn.addListener(f -> { if (!f.isSuccess()) { tx.listener.onThrowable(f.cause()); } }); return whenAlpn; }