文档中的示例提供了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永远不会得到数据,因为现在数据又回到了管道之外?
答案 0 :(得分:2)
您必须调用ChannelHandlerContext的fire *()方法之一将事件转发到下一个处理程序。您希望转发到下一个处理程序的数据可以作为ChannelHandlerContext.fireChannelRead(Object)的参数传递。