《Netty》从零开始学netty源码(十二)之ChannelHandler

ChannelHandler用来处理channel的I/O事件,其类结构如下:
在这里插入图片描述

它所能处理的事件如下:

在这里插入图片描述

在netty中,ChannelHandler不会直接添加到pipeline中,而是通过ChannelHandlerContext进行一层包装,通过ChannelHandlerContext可实现事件传播,其类图如下:

在这里插入图片描述

ChannelHandlerContext的功能与ChannelHandler类似,当调用fireXXX方法时会触发handler相应的方法,如下:

在这里插入图片描述

ChannelHandlerContext通过它的成员参数prev和next来形成链表,当有事件进入链表时能进行向上传播或者向下传播。
在这里插入图片描述

默认的一般使用DefaultChannelHandlerContext

netty中通过pipeline将处理channel的操作形成一条流水线,它的功能如下:

在这里插入图片描述

pipeline的参数如下:

在这里插入图片描述

在创建默认的pipeline时会先初始化head和tail节点 ,当添加新的handler时会添加到两者中间。

在这里插入图片描述

addFirst为例看下handler, context, pipeline三者的联系:

在这里插入图片描述

总结:本文主要介绍了ChannelHandler, ChannelHandlerContext, Pipeline三者的功能与关系。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值