ChannelPipeline
通道管道,当Channel创建时都会分配一个ChannelPipeline,生死不离。它是一个拥有着ChannelHandler处理器链的容器。在springmvc中的处理器也是链式处理,有兴趣的可以了解责任链模式。
由图我们不难看出在管道中如何构建处理器链。
ChannelPipeline会判断事件的运动方向找寻下一个处理器,而当前处理上的ChannelHandlerContext上下文,将消息传递到下一个处理器。
在ChannelPipeline中管理ChannelHandler,进行修改、删除、新增操作,这使得处理的顺序取决于我们。
通常channelpipeline中的处理器通过EventLoop(事件循环线程)来处理传递的事件。这个会在后面讲。
在channelpipeline访问channelHandler
- get 通过类型或名称获取channelHandler
- context 返回channelHandler的上下文
- names 返回channelpipeline中所有的处理器名称
channelpipeline中还拥有丰富的api可以调用,以用于入站或出站事件。
这里不多详述。
以上只是我个人理解,仅供参考,如有错误,请包涵指正!