Http2FrameCodecBuilder together with Http2MultiplexHandler.@Deprecated public class Http2MultiplexCodec extends Http2FrameCodec
When a new stream is created, a new Channel is created for it. Applications send and
 receive Http2StreamFrames on the created channel. ByteBufs cannot be processed by the channel;
 all writes that reach the head of the pipeline must be an instance of Http2StreamFrame. Writes that reach
 the head of the pipeline are processed directly by this handler and cannot be intercepted.
 
The child channel will be notified of user events that impact the stream, such as Http2GoAwayFrame and Http2ResetFrame, as soon as they occur. Although Http2GoAwayFrame and Http2ResetFrame signify that the remote is ignoring further
 communication, closing of the channel is delayed until any inbound queue is drained with Channel.read(), which follows the default behavior of channels in Netty. Applications are
 free to close the channel in response to such events if they don't have use for any queued
 messages. Any connection level events like Http2SettingsFrame and Http2GoAwayFrame
 will be processed internally and also propagated down the pipeline for other handlers to act on.
 
Outbound streams are supported via the Http2StreamChannelBootstrap.
 
ChannelConfig.setMaxMessagesPerRead(int) and ChannelConfig.setAutoRead(boolean) are supported.
 
Http2StreamFrames implement the ReferenceCounted interface, as they carry
 reference counted objects (e.g. ByteBufs). The multiplex codec will call ReferenceCounted.retain()
 before propagating a reference counted object through the pipeline, and thus an application handler needs to release
 such an object after having consumed it. For more information on reference counting take a look at
 https://netty.io/wiki/reference-counted-objects.html
 EventLoop. Therefore, an active channel
 does not map to an active HTTP/2 stream immediately. Only once a Http2HeadersFrame has been successfully sent
 or received, does the channel map to an active HTTP/2 stream. In case it is not possible to open a new HTTP/2 stream
 (i.e. due to the maximum number of active streams being exceeded), the child channel receives an exception
 indicating the cause and is closed immediately thereafter.
 ChannelHandlers are free to ignore the
 channel's writability, in which case the excessive writes will be buffered by the parent channel. It's important to
 note that only Http2DataFrames are subject to HTTP/2 flow control.ByteToMessageDecoder.CumulatorChannelHandler.SharablestreamKeyCOMPOSITE_CUMULATOR, MERGE_CUMULATOR| Modifier and Type | Method and Description | 
|---|---|
| void | channelRead(ChannelHandlerContext ctx,
           Object msg)Deprecated.  Calls  ChannelHandlerContext.fireChannelRead(Object)to forward
 to the nextChannelInboundHandlerin theChannelPipeline. | 
| void | channelReadComplete(ChannelHandlerContext ctx)Deprecated.  Notifies any child streams of the read completion. | 
| void | channelWritabilityChanged(ChannelHandlerContext ctx)Deprecated.  Calls  ChannelHandlerContext.fireChannelWritabilityChanged()to forward
 to the nextChannelInboundHandlerin theChannelPipeline. | 
| void | handlerAdded0(ChannelHandlerContext ctx)Deprecated.  | 
| void | handlerRemoved0(ChannelHandlerContext ctx)Deprecated.  Gets called after the  ByteToMessageDecoderwas removed from the actual context and it doesn't handle
 events anymore. | 
| void | onHttpClientUpgrade()Deprecated.  Handles the client-side (cleartext) upgrade from HTTP to HTTP/2. | 
handlerAdded, isGracefulShutdownComplete, newHttp2UnknownFrame, onConnectionError, onStreamError, userEventTriggered, writebind, channelActive, channelInactive, close, closeStream, closeStreamLocal, closeStreamRemote, connect, connection, decode, decoder, deregister, disconnect, encoder, exceptionCaught, flush, frameWriter, goAway, gracefulShutdownTimeoutMillis, gracefulShutdownTimeoutMillis, handleServerHeaderDecodeSizeError, onError, onHttpServerUpgrade, read, resetStreamactualReadableBytes, callDecode, decodeLast, discardSomeReadBytes, handlerRemoved, internalBuffer, isSingleDecode, setCumulator, setDiscardAfterReads, setSingleDecodechannelRegistered, channelUnregisteredensureNotSharable, isSharableclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waithandlerRemovedpublic void onHttpClientUpgrade()
                         throws Http2Exception
Http2ConnectionHandleronHttpClientUpgrade in class Http2ConnectionHandlerHttp2Exceptionpublic final void handlerAdded0(ChannelHandlerContext ctx) throws Exception
Exceptionpublic final void handlerRemoved0(ChannelHandlerContext ctx) throws Exception
ByteToMessageDecoderByteToMessageDecoder was removed from the actual context and it doesn't handle
 events anymore.handlerRemoved0 in class Http2ConnectionHandlerExceptionpublic final void channelReadComplete(ChannelHandlerContext ctx) throws Exception
channelReadComplete in interface ChannelInboundHandlerchannelReadComplete in class Http2ConnectionHandlerExceptionpublic final void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception
ChannelInboundHandlerAdapterChannelHandlerContext.fireChannelRead(Object) to forward
 to the next ChannelInboundHandler in the ChannelPipeline.
 Sub-classes may override this method to change behavior.channelRead in interface ChannelInboundHandlerchannelRead in class ByteToMessageDecoderExceptionpublic final void channelWritabilityChanged(ChannelHandlerContext ctx) throws Exception
ChannelInboundHandlerAdapterChannelHandlerContext.fireChannelWritabilityChanged() to forward
 to the next ChannelInboundHandler in the ChannelPipeline.
 Sub-classes may override this method to change behavior.channelWritabilityChanged in interface ChannelInboundHandlerchannelWritabilityChanged in class Http2ConnectionHandlerExceptionCopyright © 2008–2025 The Netty Project. All rights reserved.