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的默认实现。 


Netty 之 ChannelPipeline(1)


从代码中可以看出,DefaultChannelPipeline有两个特殊的ChannelHandlerContext,分别是head和tail,它们是维护ChannelHandler双向链表的头和尾。


关系图

它们之间的关系图如下所示: 


---------------------------------

你不扫一下吗



以上是关于Netty 之 ChannelPipeline的主要内容,如果未能解决你的问题,请参考以下文章

读后感Netty 系列之 Netty 高性能之道 - 相比 Mina 怎样 ?

Netty系列之Netty高性能之道

Netty系列之Netty高性能之道

Netty 系列之 Netty 高性能之道

Netty7# Netty之事件传递

实战Netty系列之Netty高性能之道