Netty 之 ChannelPipeline
Posted 挨踢王错
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Netty 之 ChannelPipeline相关的知识,希望对你有一定的参考价值。
Channel
Channel是Netty的核心接口之一,Netty通过Channel操作socket,一个Channel就是操作一个socket的通道。
ChannelHandler
用Netty进行网络编程时,很少直接操作Channel,而是通过ChannelHandler来间接操纵Channel。
ChannelPipeline
每个Channel都有一个自己的ChannelPipline(感觉叫ChannelHandlerPipeline更合适),ChannelPipeline有一个管理ChannelHandler的双向链表。当需要对Channel做某种处理时,Pipeline依次调用ChannelHandler进行处理。
DefaultChannelPipeline是ChannelPipeline的默认实现。
ChannelHandlerContext
ChannelPipeline并不直接管理ChannelHandler,而是通过ChannelHandlerContext间接进行管理。DefaultChannelHandlerContext是ChannelHandlerContext的默认实现。
从代码中可以看出,DefaultChannelPipeline有两个特殊的ChannelHandlerContext,分别是head和tail,它们是维护ChannelHandler双向链表的头和尾。
关系图
它们之间的关系图如下所示:
---------------------------------
你不扫一下吗
以上是关于Netty 之 ChannelPipeline的主要内容,如果未能解决你的问题,请参考以下文章