Netty中通道处理程序的顺序
我正在努力学习netty频道处理程序,我在这方面遇到了障碍 在文件Netty中通道处理程序的顺序,netty,Netty,我正在努力学习netty频道处理程序,我在这方面遇到了障碍 在文件NettyServer.java中,作者提到将通道处理程序注册到通道管道 ch.pipeline().addLast( new RequestDecoder(), new ResponseDataEncoder(), new ProcessingHandler()); 这个订单让我有点困惑。从那时起,我会按如下方式注册订单 请求被解码 处理解码请求并生成响应 解码后的响应顺序正确 ch.pip
NettyServer.java
中,作者提到将通道处理程序注册到通道管道
ch.pipeline().addLast(
new RequestDecoder(),
new ResponseDataEncoder(),
new ProcessingHandler());
这个订单让我有点困惑。从那时起,我会按如下方式注册订单
ch.pipeline().addLast(
new RequestDecoder(),
new ProcessingHandler(),
new ResponseDataEncoder());
Netty中不同顺序背后的原因是什么?这里需要了解的重要一点是,入站和出站消息(和事件)流向不同的方向。入站数据(即您接收的数据)将从ChannelPipeline的开头开始,而您编写的消息将从结尾开始。因此,被调用处理程序的顺序是不同的 检查ChannelPipeline javadocs,其中也有一些图表,以使其更加清晰:
这里需要了解的重要一点是,入站和出站消息(和事件)以不同的方向流动。入站数据(即您接收的数据)将从ChannelPipeline的开头开始,而您编写的消息将从结尾开始。因此,被调用处理程序的顺序是不同的 检查ChannelPipeline javadocs,其中也有一些图表,以使其更加清晰: