Package io.netty5.handler.flow
Class FlowControlHandler
- 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
TheFlowControlHandlerensures that only one message perread()is sent downstream. Classes such asByteToMessageDecoderorMessageToByteEncoderare 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 downstreamChannelHandlers that would like to hold subsequent events while they're processing one event. It's a common problem with theHttpObjectDecoderthat will very often fire anHttpRequestthat is immediately followed by aLastHttpContentevent.{@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 voidchannelInactive(io.netty5.channel.ChannelHandlerContext ctx)voidchannelRead(io.netty5.channel.ChannelHandlerContext ctx, Object msg)voidchannelReadComplete(io.netty5.channel.ChannelHandlerContext ctx)voidhandlerAdded(io.netty5.channel.ChannelHandlerContext ctx)voidhandlerRemoved(io.netty5.channel.ChannelHandlerContext ctx)voidread(io.netty5.channel.ChannelHandlerContext ctx)
-
-
-
Method Detail
-
handlerAdded
public void handlerAdded(io.netty5.channel.ChannelHandlerContext ctx) throws Exception- Specified by:
handlerAddedin interfaceio.netty5.channel.ChannelHandler- Throws:
Exception
-
handlerRemoved
public void handlerRemoved(io.netty5.channel.ChannelHandlerContext ctx) throws Exception- Specified by:
handlerRemovedin interfaceio.netty5.channel.ChannelHandler- Throws:
Exception
-
channelInactive
public void channelInactive(io.netty5.channel.ChannelHandlerContext ctx) throws Exception- Specified by:
channelInactivein interfaceio.netty5.channel.ChannelHandler- Throws:
Exception
-
read
public void read(io.netty5.channel.ChannelHandlerContext ctx)
- Specified by:
readin interfaceio.netty5.channel.ChannelHandler
-
channelRead
public void channelRead(io.netty5.channel.ChannelHandlerContext ctx, Object msg) throws Exception- Specified by:
channelReadin interfaceio.netty5.channel.ChannelHandler- Throws:
Exception
-
-