Class FlowControlHandler

  • All Implemented Interfaces:
    ChannelHandler, ChannelInboundHandler, ChannelOutboundHandler

    public class FlowControlHandler
    extends ChannelDuplexHandler
    The FlowControlHandler ensures that only one message per read() is sent downstream. Classes such as ByteToMessageDecoder or MessageToByteEncoder 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 downstream ChannelHandlers that would like to hold subsequent events while they're processing one event. It's a common problem with the HttpObjectDecoder that will very often fire an HttpRequest that is immediately followed by a LastHttpContent 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)