- java.lang.Object
-
- io.netty5.handler.flow.FlowControlHandler
-
- All Implemented Interfaces:
io.netty5.channel.ChannelHandler
public class FlowControlHandler extends Object implements io.netty5.channel.ChannelHandler
TheFlowControlHandler
ensures that only one message perread()
is sent downstream. Classes such asByteToMessageDecoder
orMessageToByteEncoder
are free to emit as many events as they like for any given input. A channel's auto reading configuration doesn't usually apply in these scenarios. This is causing problems in downstreamChannelHandler
s that would like to hold subsequent events while they're processing one event. It's a common problem with theHttpObjectDecoder
that will very often fire anHttpRequest
that is immediately followed by aLastHttpContent
event.{@code ChannelPipeline pipeline = ...; pipeline.addLast(new HttpServerCodec()); pipeline.addLast(new FlowControlHandler()); pipeline.addLast(new MyExampleHandler()); class MyExampleHandler extends ChannelInboundHandlerAdapter {
- See Also:
ChannelConfig.setAutoRead(boolean)
-
-
Constructor Summary
Constructors Constructor Description FlowControlHandler()
FlowControlHandler(boolean releaseMessages)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
channelInactive(io.netty5.channel.ChannelHandlerContext ctx)
void
channelRead(io.netty5.channel.ChannelHandlerContext ctx, Object msg)
void
channelReadComplete(io.netty5.channel.ChannelHandlerContext ctx)
void
handlerAdded(io.netty5.channel.ChannelHandlerContext ctx)
void
handlerRemoved(io.netty5.channel.ChannelHandlerContext ctx)
void
read(io.netty5.channel.ChannelHandlerContext ctx)
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface io.netty5.channel.ChannelHandler
bind, channelActive, channelExceptionCaught, channelInboundEvent, channelRegistered, channelShutdown, channelUnregistered, channelWritabilityChanged, close, connect, deregister, disconnect, flush, isSharable, pendingOutboundBytes, register, sendOutboundEvent, shutdown, write
-
-
-
-
Method Detail
-
handlerAdded
public void handlerAdded(io.netty5.channel.ChannelHandlerContext ctx) throws Exception
- Specified by:
handlerAdded
in interfaceio.netty5.channel.ChannelHandler
- Throws:
Exception
-
handlerRemoved
public void handlerRemoved(io.netty5.channel.ChannelHandlerContext ctx) throws Exception
- Specified by:
handlerRemoved
in interfaceio.netty5.channel.ChannelHandler
- Throws:
Exception
-
channelInactive
public void channelInactive(io.netty5.channel.ChannelHandlerContext ctx) throws Exception
- Specified by:
channelInactive
in interfaceio.netty5.channel.ChannelHandler
- Throws:
Exception
-
read
public void read(io.netty5.channel.ChannelHandlerContext ctx)
- Specified by:
read
in interfaceio.netty5.channel.ChannelHandler
-
channelRead
public void channelRead(io.netty5.channel.ChannelHandlerContext ctx, Object msg) throws Exception
- Specified by:
channelRead
in interfaceio.netty5.channel.ChannelHandler
- Throws:
Exception
-
-