Pipeline Handler HandlerContext 创建过程梳理
- 每当创建 ChannelSocket 的时候都会创建一个绑定的 pipeline,一对一的关系,创建 pipeline 的时候也会创建tail 节点和 head 节点,形成最初的链表。
- 在调用 pipeline 的 addlast 方法的时候,会根据给定的 handler 创建一个 Context,然后,将这个 Context 插入到链表的尾端 (tail 前面)。
- Context 包装 handler,多个 Context 在 pipeline 中形成了双向链表
- 入站方向叫 inbound,由head节点开始,出站方法叫outbound,由tail节点开始
ChannelPipeline 调度 handler 梳理
- Context 包装 handler,多个 Context 在 pipeline 中形成了双向链表,入站方向叫 inbound,由 head 节点开始出站方法叫 outbound ,由 tail 节点开始
- 而节点中间的传递通过 AbstratChannelHandlerContext 类内部的 fire 系列方法,找到当前节点的下一个节点不断的循环传播。是一个过滤器形式完成对 handler 的调度