《Netty学习》(六)ChannelHandlerContext学习

ChannelHandlerContext

通道处理器上下文。
当ChannelHandler添加到ChannelPipeline时,每一个处理器都会分配一个上下文与之绑定,生死不离。上下文可以自身处理器与其他的处理器进行交互,因为上下文并不会改变处理器本身,所以上下文是安全的。  

处理器与上下文和管道的关系图

这里写图片描述

上下文中的方法有一个特点 : 它的事件传播是从它本身作为起点,它不需要流经整个管道。

这里写图片描述

而通道和管道的方法:都是需要从管道的一端传播到另一端,需要流经整个管道。

这里写图片描述

这样一来导致调用ChannelHandler处理器的数量是不同的,当然也会产生不同的效果。

在上下文中可以调用管道来动态增、删、改处理器,可以保存上下文供后面使用。

处理器和上下文的高级用法:
1. 将处理器添加到管道中实现动态协议切换
2. 缓存上下文

一个处理器是可以供多个管道使用的,但是要添加@Sharable标记该处理是安全共享的,共享一个处理器可以收集不同channel的统计信息或者使用一个ChannelHandler来统计连接数、处理全局数据等。

以上只是我个人理解,仅供参考,如有错误,请包涵指正!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值