Class FlowControlHandler

  • All Implemented Interfaces:
    ChannelHandler

    public class FlowControlHandler
    extends Object
    implements ChannelHandler
    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 {