通过Netty中的多个InboundHandler或OutboundHandler传递数据

时间:2017-05-19 21:09:16

标签: netty

文档中的示例提供了Decoder-> Encoder-> BusinessLogicHandler流程。 https://netty.io/4.1/xref/io/netty/example/factorial/package-summary.html

我想知道的是如何将数据传递给多个InboundHandler和一行中的多个OutboundHandler。据我所知,解码器将字节解码为POJO。然后在BuginessLogicHandler中,它是InboundHandlerAdapter的子类,它执行ctx.writeAndFlush()。是这个动作发送数据,编码器(出站)获取数据转换回字节。如果这个假设是正确的,那么你如何从InboundHandler1-> InboundHandler2开始,因为我假设你在InboundHandler1中做了ctx.writeAndFlush(),那么InboundHandler2永远不会得到数据,因为现在数据又回到了管道之外?

1 个答案:

答案 0 :(得分:2)

您必须调用ChannelHandlerContext的fire *()方法之一将事件转发到下一个处理程序。您希望转发到下一个处理程序的数据可以作为ChannelHandlerContext.fireChannelRead(Object)的参数传递。

Pipeline docs