@UnstableApi
public final class Http2MultiplexCodec
extends io.netty.channel.ChannelDuplexHandler
When a new stream is created, a new Channel
is created for it. Applications send and
receive Http2StreamFrame
s on the created channel. ByteBuf
s cannot be processed by the channel;
all writes that reach the head of the pipeline must be an instance of Http2Frame
. 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.
ChannelConfig.setMaxMessagesPerRead(int)
and ChannelConfig.setAutoRead(boolean)
are supported.
Constructor and Description |
---|
Http2MultiplexCodec(boolean server,
io.netty.channel.EventLoopGroup streamGroup,
io.netty.channel.ChannelHandler streamHandler)
Construct a new handler whose child channels run in a different event loop.
|
Modifier and Type | Method and Description |
---|---|
void |
channelRead(io.netty.channel.ChannelHandlerContext ctx,
Object msg) |
void |
channelReadComplete(io.netty.channel.ChannelHandlerContext ctx)
Notifies any child streams of the read completion.
|
void |
exceptionCaught(io.netty.channel.ChannelHandlerContext ctx,
Throwable cause) |
void |
flush(io.netty.channel.ChannelHandlerContext ctx) |
void |
handlerAdded(io.netty.channel.ChannelHandlerContext ctx) |
void |
userEventTriggered(io.netty.channel.ChannelHandlerContext ctx,
Object evt) |
bind, close, connect, deregister, disconnect, read, write
channelActive, channelInactive, channelRegistered, channelUnregistered, channelWritabilityChanged
public Http2MultiplexCodec(boolean server, io.netty.channel.EventLoopGroup streamGroup, io.netty.channel.ChannelHandler streamHandler)
server
- true
this is a serverstreamHandler
- the handler added to channels for remotely-created streams. It must be
ChannelHandler.Sharable
.streamGroup
- event loop for registering child channelspublic void handlerAdded(io.netty.channel.ChannelHandlerContext ctx) throws Exception
handlerAdded
in interface io.netty.channel.ChannelHandler
handlerAdded
in class io.netty.channel.ChannelHandlerAdapter
Exception
public void exceptionCaught(io.netty.channel.ChannelHandlerContext ctx, Throwable cause)
exceptionCaught
in interface io.netty.channel.ChannelHandler
exceptionCaught
in interface io.netty.channel.ChannelInboundHandler
exceptionCaught
in class io.netty.channel.ChannelInboundHandlerAdapter
public void flush(io.netty.channel.ChannelHandlerContext ctx)
flush
in interface io.netty.channel.ChannelOutboundHandler
flush
in class io.netty.channel.ChannelDuplexHandler
public void channelRead(io.netty.channel.ChannelHandlerContext ctx, Object msg) throws Exception
channelRead
in interface io.netty.channel.ChannelInboundHandler
channelRead
in class io.netty.channel.ChannelInboundHandlerAdapter
Exception
public void userEventTriggered(io.netty.channel.ChannelHandlerContext ctx, Object evt) throws Exception
userEventTriggered
in interface io.netty.channel.ChannelInboundHandler
userEventTriggered
in class io.netty.channel.ChannelInboundHandlerAdapter
Exception
public void channelReadComplete(io.netty.channel.ChannelHandlerContext ctx)
channelReadComplete
in interface io.netty.channel.ChannelInboundHandler
channelReadComplete
in class io.netty.channel.ChannelInboundHandlerAdapter
Copyright © 2008–2016 The Netty Project. All rights reserved.