类 io.netty.handler.codec.http2.Http2ConnectionEncoder 源码实例Demo

下面列出了怎么用 io.netty.handler.codec.http2.Http2ConnectionEncoder 的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: grpc-java   文件: AbstractNettyHandler.java

AbstractNettyHandler(
    ChannelPromise channelUnused,
    Http2ConnectionDecoder decoder,
    Http2ConnectionEncoder encoder,
    Http2Settings initialSettings,
    boolean autoFlowControl) {
  super(channelUnused, decoder, encoder, initialSettings);

  // During a graceful shutdown, wait until all streams are closed.
  gracefulShutdownTimeoutMillis(GRACEFUL_SHUTDOWN_NO_TIMEOUT);

  // Extract the connection window from the settings if it was set.
  this.initialConnectionWindow = initialSettings.initialWindowSize() == null ? -1 :
          initialSettings.initialWindowSize();
  this.autoTuneFlowControlOn = autoFlowControl;
  if (encoder instanceof ListeningEncoder) {
    ((ListeningEncoder) encoder).setListener(pingCountingListener);
  }
}
 

public GrpcHttp2ConnectionHandler(
    ChannelPromise channelUnused,
    Http2ConnectionDecoder decoder,
    Http2ConnectionEncoder encoder,
    Http2Settings initialSettings) {
  super(decoder, encoder, initialSettings);
  this.channelUnused = channelUnused;
}
 

AbstractNettyHandler(
    ChannelPromise channelUnused,
    Http2ConnectionDecoder decoder,
    Http2ConnectionEncoder encoder,
    Http2Settings initialSettings) {
  super(channelUnused, decoder, encoder, initialSettings);

  // During a graceful shutdown, wait until all streams are closed.
  gracefulShutdownTimeoutMillis(GRACEFUL_SHUTDOWN_NO_TIMEOUT);

  // Extract the connection window from the settings if it was set.
  this.initialConnectionWindow = initialSettings.initialWindowSize() == null ? -1 :
          initialSettings.initialWindowSize();
}
 

@Override
protected HelloWorldHttp2Handler build(Http2ConnectionDecoder decoder, Http2ConnectionEncoder encoder,
                                       Http2Settings initialSettings) {
    HelloWorldHttp2Handler handler = new HelloWorldHttp2Handler(decoder, encoder, initialSettings);
    frameListener(handler);
    return handler;
}
 

@Override
protected HelloWorldHttp2Handler build(Http2ConnectionDecoder decoder, Http2ConnectionEncoder encoder,
                                       Http2Settings initialSettings) {
    HelloWorldHttp2Handler handler = new HelloWorldHttp2Handler(decoder, encoder, initialSettings);
    frameListener(handler);
    return handler;
}
 

@Override
protected Http2Handler build(Http2ConnectionDecoder decoder, Http2ConnectionEncoder encoder,
                             Http2Settings initialSettings) {
    Http2Handler handler = new Http2Handler(decoder, encoder, initialSettings);
    frameListener(handler);
    return handler;
}
 

@Override
protected Http2ServerChannelHandler build(Http2ConnectionDecoder decoder, Http2ConnectionEncoder encoder,
                                          Http2Settings initialSettings) {
    Http2ServerChannelHandler handler = new Http2ServerChannelHandler(serverHandler, decoder, encoder,
        initialSettings);
    frameListener(handler);
    return handler;
}
 
源代码8 项目: sofa-rpc   文件: HttpServerHandler.java

/**
 * Handle request from HTTP/2
 * 
 * @param streamId stream Id
 * @param request SofaRequest
 * @param ctx ChannelHandlerContext
 * @param encoder Http2ConnectionEncoder
 */
public void handleHttp2Request(int streamId, SofaRequest request, ChannelHandlerContext ctx,
                               Http2ConnectionEncoder encoder) {
    Http2ServerTask task = new Http2ServerTask(this, request, ctx, streamId, encoder);

    processingCount.incrementAndGet();
    try {
        task.run();
    } catch (RejectedExecutionException e) {
        processingCount.decrementAndGet();
        throw e;
    }
}
 
源代码9 项目: xrpc   文件: Http2HandlerBuilder.java

@Override
protected Http2ConnectionHandler build(
    Http2ConnectionDecoder decoder,
    Http2ConnectionEncoder encoder,
    Http2Settings initialSettings) {

  // TODO(jkinkead): Set MAX_CONCURRENT_STREAMS value to something from config.
  decoder.frameListener(new Http2Handler(encoder, maxPayloadBytes, corsHandler));

  return new ConnectionHandler(decoder, encoder, initialSettings);
}
 
源代码10 项目: xrpc   文件: Http2Handler.java

Http2Handler(Http2ConnectionEncoder encoder, int maxPayloadBytes, Http2CorsHandler corsHandler) {
  this.encoder = encoder;
  this.maxPayloadBytes = maxPayloadBytes;
  this.corsHandler = corsHandler;

  encoder.connection().addListener(this);
}
 

Http2ClientConnectionHandler(Http2ConnectionDecoder decoder, Http2ConnectionEncoder encoder,
                             Http2Settings initialSettings, Channel channel,
                             HttpClientFactory clientFactory, SessionProtocol protocol) {

    super(decoder, encoder, initialSettings);
    this.clientFactory = clientFactory;

    if (clientFactory.idleTimeoutMillis() > 0 || clientFactory.pingIntervalMillis() > 0) {
        final Timer keepAliveTimer =
                MoreMeters.newTimer(clientFactory.meterRegistry(), "armeria.client.connections.lifespan",
                                    ImmutableList.of(Tag.of("protocol", protocol.uriText())));
        keepAliveHandler = new Http2ClientKeepAliveHandler(
                channel, encoder.frameWriter(), keepAliveTimer,
                clientFactory.idleTimeoutMillis(), clientFactory.pingIntervalMillis());
    } else {
        keepAliveHandler = null;
    }

    responseDecoder = new Http2ResponseDecoder(channel, encoder(), clientFactory, keepAliveHandler);
    connection().addListener(responseDecoder);
    decoder().frameListener(responseDecoder);

    // Setup post build options
    final long timeout = clientFactory.idleTimeoutMillis();
    if (timeout > 0) {
        gracefulShutdownTimeoutMillis(timeout);
    } else {
        // Timeout disabled
        gracefulShutdownTimeoutMillis(-1);
    }
}
 
源代码12 项目: armeria   文件: Http2ResponseDecoder.java

Http2ResponseDecoder(Channel channel, Http2ConnectionEncoder encoder, HttpClientFactory clientFactory,
                     @Nullable Http2KeepAliveHandler keepAliveHandler) {
    super(channel,
          InboundTrafficController.ofHttp2(channel, clientFactory.http2InitialConnectionWindowSize()));
    conn = encoder.connection();
    this.encoder = encoder;
    this.keepAliveHandler = keepAliveHandler;
    goAwayHandler = new Http2GoAwayHandler();
}
 

@Override
protected Http2ClientConnectionHandler build(Http2ConnectionDecoder decoder,
                                             Http2ConnectionEncoder encoder,
                                             Http2Settings initialSettings) throws Exception {
    return new Http2ClientConnectionHandler(
            decoder, encoder, initialSettings, channel(), clientFactory, protocol);
}
 
源代码14 项目: armeria   文件: ServerHttp2ObjectEncoder.java

ServerHttp2ObjectEncoder(ChannelHandlerContext ctx, Http2ConnectionEncoder encoder,
                         @Nullable KeepAliveHandler keepAliveHandler,
                         boolean enableDateHeader, boolean enableServerHeader) {
    super(ctx, encoder);
    this.keepAliveHandler = keepAliveHandler;
    this.enableServerHeader = enableServerHeader;
    this.enableDateHeader = enableDateHeader;
}
 
源代码15 项目: armeria   文件: Http2RequestDecoder.java

Http2RequestDecoder(ServerConfig cfg, Channel channel, Http2ConnectionEncoder writer, String scheme,
                    @Nullable Http2KeepAliveHandler keepAliveHandler) {
    this.cfg = cfg;
    this.channel = channel;
    this.writer = writer;
    this.scheme = scheme;
    this.keepAliveHandler = keepAliveHandler;
    inboundTrafficController =
            InboundTrafficController.ofHttp2(channel, cfg.http2InitialConnectionWindowSize());
    goAwayHandler = new Http2GoAwayHandler();
}
 

@Override
protected Http2ServerConnectionHandler build(Http2ConnectionDecoder decoder,
                                             Http2ConnectionEncoder encoder,
                                             Http2Settings initialSettings) throws Exception {
    return new Http2ServerConnectionHandler(decoder, encoder, initialSettings, channel(),
                                            config, keepAliveTimer, gracefulShutdownSupport, scheme);
}
 

Http2ServerConnectionHandler(Http2ConnectionDecoder decoder, Http2ConnectionEncoder encoder,
                             Http2Settings initialSettings, Channel channel, ServerConfig config,
                             Timer keepAliveTimer, GracefulShutdownSupport gracefulShutdownSupport,
                             String scheme) {

    super(decoder, encoder, initialSettings);
    this.gracefulShutdownSupport = gracefulShutdownSupport;

    if (config.idleTimeoutMillis() > 0 || config.pingIntervalMillis() > 0) {
        keepAliveHandler = new Http2ServerKeepAliveHandler(
                channel, encoder().frameWriter(), keepAliveTimer,
                config.idleTimeoutMillis(), config.pingIntervalMillis(), config.maxConnectionAgeMillis());
    } else {
        keepAliveHandler = null;
    }

    requestDecoder = new Http2RequestDecoder(config, channel, encoder(), scheme, keepAliveHandler);
    connection().addListener(requestDecoder);
    decoder().frameListener(requestDecoder);

    // Setup post build options
    final long timeout = config.idleTimeoutMillis();
    if (timeout > 0) {
        gracefulShutdownTimeoutMillis(timeout);
    } else {
        // Timeout disabled
        gracefulShutdownTimeoutMillis(-1);
    }
}
 
源代码18 项目: glowroot   文件: Http2Server.java

@Override
protected Http2ServerHandler build(Http2ConnectionDecoder decoder,
        Http2ConnectionEncoder encoder, Http2Settings initialSettings) {
    Http2ServerHandler handler = new Http2ServerHandler(decoder, encoder, initialSettings);
    frameListener(handler);
    return handler;
}
 

FakeGrpcHttp2ConnectionHandler(
    ChannelPromise channelUnused,
    Http2ConnectionDecoder decoder,
    Http2ConnectionEncoder encoder,
    Http2Settings initialSettings) {
  super(channelUnused, decoder, encoder, initialSettings);
}
 

public GrpcHttp2ConnectionHandler(
    ChannelPromise channelUnused,
    Http2ConnectionDecoder decoder,
    Http2ConnectionEncoder encoder,
    Http2Settings initialSettings) {
  super(decoder, encoder, initialSettings);
  this.channelUnused = channelUnused;
}
 
源代码21 项目: grpc-java   文件: ProtocolNegotiatorsTest.java

FakeGrpcHttp2ConnectionHandler(ChannelPromise channelUnused,
    Http2ConnectionDecoder decoder,
    Http2ConnectionEncoder encoder,
    Http2Settings initialSettings,
    boolean noop) {
  super(channelUnused, decoder, encoder, initialSettings);
  this.noop = noop;
}
 

@VisibleForTesting
static NettyServerHandler newHandler(
    ChannelPromise channelUnused,
    Http2FrameReader frameReader,
    Http2FrameWriter frameWriter,
    ServerTransportListener transportListener,
    List<ServerStreamTracer.Factory> streamTracerFactories,
    TransportTracer transportTracer,
    int maxStreams,
    int flowControlWindow,
    int maxHeaderListSize,
    int maxMessageSize,
    long keepAliveTimeInNanos,
    long keepAliveTimeoutInNanos,
    long maxConnectionIdleInNanos,
    long maxConnectionAgeInNanos,
    long maxConnectionAgeGraceInNanos,
    boolean permitKeepAliveWithoutCalls,
    long permitKeepAliveTimeInNanos) {
  Preconditions.checkArgument(maxStreams > 0, "maxStreams must be positive");
  Preconditions.checkArgument(flowControlWindow > 0, "flowControlWindow must be positive");
  Preconditions.checkArgument(maxHeaderListSize > 0, "maxHeaderListSize must be positive");
  Preconditions.checkArgument(maxMessageSize > 0, "maxMessageSize must be positive");

  final Http2Connection connection = new DefaultHttp2Connection(true);
  WeightedFairQueueByteDistributor dist = new WeightedFairQueueByteDistributor(connection);
  dist.allocationQuantum(16 * 1024); // Make benchmarks fast again.
  DefaultHttp2RemoteFlowController controller =
      new DefaultHttp2RemoteFlowController(connection, dist);
  connection.remote().flowController(controller);
  final KeepAliveEnforcer keepAliveEnforcer = new KeepAliveEnforcer(
      permitKeepAliveWithoutCalls, permitKeepAliveTimeInNanos, TimeUnit.NANOSECONDS);

  // Create the local flow controller configured to auto-refill the connection window.
  connection.local().flowController(
      new DefaultHttp2LocalFlowController(connection, DEFAULT_WINDOW_UPDATE_RATIO, true));
  frameWriter = new WriteMonitoringFrameWriter(frameWriter, keepAliveEnforcer);
  Http2ConnectionEncoder encoder = new DefaultHttp2ConnectionEncoder(connection, frameWriter);
  Http2ConnectionDecoder decoder = new DefaultHttp2ConnectionDecoder(connection, encoder,
      frameReader);

  Http2Settings settings = new Http2Settings();
  settings.initialWindowSize(flowControlWindow);
  settings.maxConcurrentStreams(maxStreams);
  settings.maxHeaderListSize(maxHeaderListSize);

  return new NettyServerHandler(
      channelUnused,
      connection,
      transportListener,
      streamTracerFactories,
      transportTracer,
      decoder, encoder, settings,
      maxMessageSize,
      keepAliveTimeInNanos, keepAliveTimeoutInNanos,
      maxConnectionIdleInNanos,
      maxConnectionAgeInNanos, maxConnectionAgeGraceInNanos,
      keepAliveEnforcer);
}
 

private CapturingGrpcHttp2ConnectionHandler(
    Http2ConnectionDecoder decoder,
    Http2ConnectionEncoder encoder,
    Http2Settings initialSettings) {
  super(null, decoder, encoder, initialSettings);
}
 

HelloWorldHttp2Handler(Http2ConnectionDecoder decoder, Http2ConnectionEncoder encoder,
                       Http2Settings initialSettings) {
    super(decoder, encoder, initialSettings);
}
 

HelloWorldHttp2Handler(Http2ConnectionDecoder decoder, Http2ConnectionEncoder encoder,
                       Http2Settings initialSettings) {
    super(decoder, encoder, initialSettings);
}
 
源代码26 项目: product-microgateway   文件: Http2Handler.java

Http2Handler(Http2ConnectionDecoder decoder, Http2ConnectionEncoder encoder,
             Http2Settings initialSettings) {
    super(decoder, encoder, initialSettings);
}
 

Http2ServerChannelHandler(HttpServerHandler serverHandler, Http2ConnectionDecoder decoder,
                          Http2ConnectionEncoder encoder,
                          Http2Settings initialSettings) {
    super(decoder, encoder, initialSettings);
    this.serverHandler = serverHandler;
}
 
源代码28 项目: sofa-rpc   文件: Http2ServerTask.java

public Http2ServerTask(HttpServerHandler serverHandler, SofaRequest request,
                       ChannelHandlerContext ctx, Integer streamId, Http2ConnectionEncoder encoder) {
    super(serverHandler, request, ctx);
    this.streamId = streamId;
    this.encoder = encoder;
}
 
源代码29 项目: xrpc   文件: Http2HandlerBuilder.java

ConnectionHandler(
    Http2ConnectionDecoder decoder,
    Http2ConnectionEncoder encoder,
    Http2Settings initialSettings) {
  super(decoder, encoder, initialSettings);
}
 
源代码30 项目: armeria   文件: ClientHttp2ObjectEncoder.java

ClientHttp2ObjectEncoder(ChannelHandlerContext ctx, Http2ConnectionEncoder encoder,
                         SessionProtocol protocol, @Nullable Http2KeepAliveHandler keepAliveHandler) {
    super(ctx, encoder);
    this.protocol = requireNonNull(protocol, "protocol");
    this.keepAliveHandler = keepAliveHandler;
}
 
 类方法
 同包方法