Java 类io.netty.handler.codec.http2.Http2ClientUpgradeCodec 实例源码
项目:JavaAyo
文件:Http2ClientInitializer.java
/**
* Configure the pipeline for a cleartext upgrade from HTTP to HTTP/2.
*/
private void configureClearText(SocketChannel ch) {
HttpClientCodec sourceCodec = new HttpClientCodec();
Http2ClientUpgradeCodec upgradeCodec = new Http2ClientUpgradeCodec(connectionHandler);
HttpClientUpgradeHandler upgradeHandler = new HttpClientUpgradeHandler(sourceCodec, upgradeCodec, 65536);
ch.pipeline().addLast(sourceCodec,
upgradeHandler,
new UpgradeRequestHandler(),
new UserEventLogger());
}
项目:netty-cookbook
文件:Http2ClientInitializer.java
/**
* Configure the pipeline for a cleartext upgrade from HTTP to HTTP/2.
*/
private void configureClearText(SocketChannel ch) {
HttpClientCodec sourceCodec = new HttpClientCodec();
Http2ClientUpgradeCodec upgradeCodec = new Http2ClientUpgradeCodec(connectionHandler);
HttpClientUpgradeHandler upgradeHandler = new HttpClientUpgradeHandler(sourceCodec, upgradeCodec, 65536);
ch.pipeline().addLast("Http2SourceCodec", sourceCodec);
ch.pipeline().addLast("Http2UpgradeHandler", upgradeHandler);
ch.pipeline().addLast("Http2UpgradeRequestHandler", new UpgradeRequestHandler());
ch.pipeline().addLast("Logger", new UserEventLogger());
}
项目:jmeter-http2-plugin
文件:Http2ClientInitializer.java
/**
* Configure the pipeline for a cleartext upgrade from HTTP to HTTP/2.
*/
private void configureClearText(SocketChannel ch) {
HttpClientCodec sourceCodec = new HttpClientCodec();
Http2ClientUpgradeCodec upgradeCodec = new Http2ClientUpgradeCodec(connectionHandler);
HttpClientUpgradeHandler upgradeHandler = new HttpClientUpgradeHandler(sourceCodec, upgradeCodec, 65536);
ch.pipeline().addLast("Http2SourceCodec", sourceCodec);
ch.pipeline().addLast("Http2UpgradeHandler", upgradeHandler);
ch.pipeline().addLast("Http2UpgradeRequestHandler", new UpgradeRequestHandler());
ch.pipeline().addLast("Logger", new UserEventLogger());
}
项目:armeria
文件:THttp2Client.java
@Override
public void initChannel(SocketChannel ch) throws Exception {
final ChannelPipeline p = ch.pipeline();
final Http2Connection conn = new DefaultHttp2Connection(false);
final HttpToHttp2ConnectionHandler connHandler = new HttpToHttp2ConnectionHandlerBuilder()
.connection(conn)
.frameListener(new DelegatingDecompressorFrameListener(
conn,
new InboundHttp2ToHttpAdapterBuilder(conn)
.maxContentLength(Integer.MAX_VALUE)
.propagateSettings(true).build()))
.build();
clientHandler = new THttp2ClientHandler(ch.eventLoop());
if (sslCtx != null) {
p.addLast(sslCtx.newHandler(p.channel().alloc()));
p.addLast(connHandler);
configureEndOfPipeline(p);
} else {
Http1ClientCodec sourceCodec = new Http1ClientCodec();
HttpClientUpgradeHandler upgradeHandler = new HttpClientUpgradeHandler(
sourceCodec, new Http2ClientUpgradeCodec(connHandler), 65536);
p.addLast(sourceCodec, upgradeHandler, new UpgradeRequestHandler());
}
}
项目:carbon-transports
文件:HTTP2ClientInitializer.java
/**
* Configure the pipeline for a cleartext upgrade from HTTP to HTTP/2.
*/
private void configureClearText(SocketChannel ch) {
HttpClientCodec sourceCodec = new HttpClientCodec();
Http2ClientUpgradeCodec upgradeCodec = new Http2ClientUpgradeCodec(connectionHandler);
HttpClientUpgradeHandler upgradeHandler = new HttpClientUpgradeHandler(sourceCodec, upgradeCodec, 65536);
ch.pipeline().addLast(sourceCodec,
upgradeHandler,
new UpgradeRequestHandler(),
new UserEventLogger());
}
项目:grpc-java
文件:ProtocolNegotiators.java
@Override
public Handler newHandler(GrpcHttp2ConnectionHandler handler) {
// Register the plaintext upgrader
Http2ClientUpgradeCodec upgradeCodec = new Http2ClientUpgradeCodec(handler);
HttpClientCodec httpClientCodec = new HttpClientCodec();
final HttpClientUpgradeHandler upgrader =
new HttpClientUpgradeHandler(httpClientCodec, upgradeCodec, 1000);
return new BufferingHttp2UpgradeHandler(upgrader);
}
项目:armeria
文件:HttpClientPipelineConfigurator.java
private void configureAsHttp(Channel ch) {
final ChannelPipeline pipeline = ch.pipeline();
pipeline.addLast(TrafficLoggingHandler.CLIENT);
final boolean attemptUpgrade;
switch (httpPreference) {
case HTTP1_REQUIRED:
attemptUpgrade = false;
break;
case HTTP2_PREFERRED:
attemptUpgrade = !SessionProtocolNegotiationCache.isUnsupported(remoteAddress, H2C);
break;
case HTTP2_REQUIRED:
attemptUpgrade = true;
break;
default:
// Should never reach here.
throw new Error();
}
if (attemptUpgrade) {
final Http2ClientConnectionHandler http2Handler = newHttp2ConnectionHandler(ch);
if (clientFactory.useHttp2Preface()) {
pipeline.addLast(new DowngradeHandler());
pipeline.addLast(http2Handler);
} else {
Http1ClientCodec http1Codec = newHttp1Codec(
clientFactory.maxHttp1InitialLineLength(),
clientFactory.maxHttp1HeaderSize(),
clientFactory.maxHttp1ChunkSize());
Http2ClientUpgradeCodec http2ClientUpgradeCodec =
new Http2ClientUpgradeCodec(http2Handler);
HttpClientUpgradeHandler http2UpgradeHandler =
new HttpClientUpgradeHandler(
http1Codec, http2ClientUpgradeCodec,
(int) Math.min(Integer.MAX_VALUE, UPGRADE_RESPONSE_MAX_LENGTH));
pipeline.addLast(http1Codec);
pipeline.addLast(new WorkaroundHandler());
pipeline.addLast(http2UpgradeHandler);
pipeline.addLast(new UpgradeRequestHandler(http2Handler.responseDecoder()));
}
} else {
pipeline.addLast(newHttp1Codec(
clientFactory.maxHttp1InitialLineLength(),
clientFactory.maxHttp1HeaderSize(),
clientFactory.maxHttp1ChunkSize()));
// NB: We do not call finishSuccessfully() immediately here
// because it assumes HttpSessionHandler to be in the pipeline,
// which is only true after the connection attempt is successful.
pipeline.addLast(new ChannelInboundHandlerAdapter() {
@Override
public void channelActive(ChannelHandlerContext ctx) throws Exception {
ctx.pipeline().remove(this);
finishSuccessfully(pipeline, H1C);
ctx.fireChannelActive();
}
});
}
}