Netty的主要组件

Channel

Channel作为Netty网络通信的主体,可以看作是通讯的载体,主要有三个状态:打开、关闭、连接。

​ Channel主要的IO操作:读(read)、写(write)、连接(connect)、绑定(bind),均为异步,也就是说在调用如上方法后,并不保证IO操作完成,但会在IO操作成功、失败或取消后,生成相应的记录保存在一个凭证中并返回。

ChannelHandler

​ 负责Channel中的逻辑处理,可针对性地拦截处理Channel负责的IO操作或事件,然后在它的ChannelPipeline中将其递交给下一个handler。ChannelHandler中有许多方法需要实现,一般通过继承ChannelHandlerAdapter来实现。

ChannelPipeline

​ Netty中,ChannelPipeline相当于ChannelHandler的容器,它们可用于拦截和处理channel事件,关系如下图:
Netty的学习使用
ChannelPipeline相当于ChannelHandler的容器,channel事件消息在ChannelPipeline中传播流动,而ChannelHandler可以针对性地对事件进行拦截处理、传递、忽略或者终止。一个ChannelHandler会绑定一个ChannelHandlerContext对象,ChannelHandler会通过与其对应的Context对象和ChannelPipeline交互,比如向上或向下传递events,动态地修改ChannelPipeline,或者通过ChannelHandlerContext中的AttributeKeys存储与handler相关的信息。

相关文章:

  • 2021-11-24
  • 2022-01-30
  • 2021-06-05
  • 2022-01-06
  • 2022-12-23
  • 2021-12-06
  • 2021-07-26
  • 2021-05-04
猜你喜欢
  • 2021-11-02
  • 2021-08-20
  • 2021-08-02
  • 2021-09-10
  • 2021-12-14
  • 2021-10-28
  • 2022-02-22
相关资源
相似解决方案