netty中的ChannelHandler和ChannelPipeline
2017-11-10 14:12
447 查看
netty中的ChannelHandler和ChannelPipeline
ChannelHandler 家族
https://www.w3cschool.cn/essential_netty_in_action/Channel 生命周期
channelRegistered: 注册。
channelActive: 活跃状态,可接收和发送数据。
channelInactive: 处于非活跃状态,没有连接到远程主机。
channelUnregistered: 已创建但未注册到一个 EventLoop。
ChannelHandler 生命周期
handlerAdded: 当 ChannelHandler 添加到 ChannelPipeline 调用
handlerRemoved: 当 ChannelHandler 从 ChannelPipeline 移除时调用
exceptionCaught: 当 ChannelPipeline 执行抛出异常时调用
ChannelHandler两个重要的接口:
ChannelInboundHandler : 处理进站数据和所有状态更改事件。
ChannelOutboundHandler : 处理出站数据,允许拦截各种操作。
ChannelPipeline
ChannelPipeline 是一系列ChannelHandler的实例,流经一个Channel的事件可以被ChannelPipeline拦截ChannelHandlerContext
ChannelHandlerContext代表了ChannelPipeline和ChannelHandler之间的关联,是ChannelHandler之间信息传递的桥梁。ChannelPipeline、Channel、ChannelHandler、ChannelHandlerContext之间的关系。
1、Channel绑定到ChannelPipeline
2、ChannelPipeline绑定到包含ChannelHandler的Channel
3、ChannelHandler
4、当添加ChannelHandler到ChannelPipeline时,ChannelHandlerContext被创建
Channel中信息的传递:
Channel或者ChannelPipeline上调用write()方法,会让整个事件在管道中进行传递。
ChannelHandler之间的数据传递则通过ChannelHandlerContext调用方法来实现。
事件传递给 ChannelPipeline 的第一个 ChannelHandler
ChannelHandler 通过关联的 ChannelHandlerContext 传递事件给 ChannelPipeline 中的 下一个
ChannelHandler 通过关联的 ChannelHandlerContext 传递事件给 ChannelPipeline 中的 下一个
相关文章推荐
- Netty in action—ChannelHandler和ChannelPipeline
- 一起学Netty(四)之 ChannelHandler,ChannelHandlerContext,ChannelPipeline
- 一起学Netty(四)之 ChannelHandler,ChannelHandlerContext,ChannelPipeline
- Netty 之 ChannelHandler,ChannelHandlerContext,ChannelPipeline
- Netty之ChannelHandler,ChannelHandlerContext,ChannelPipeline
- 深入研究Netty框架之ChannelHandler和ChannelPipeline
- 一起学Netty(四)之 ChannelHandler,ChannelHandlerContext,ChannelPipeline
- Netty ChannelPipeline动态修改ChannelHandler
- netty源码分析之-Channel、ChannelPipeline、ChannelHandler以及 ChannelHandlerContext 详解(2)
- netty:使用ChannelDuplexHandler 来接收、下发数据
- Netty系列:六、细说ChannelHandler和ChannelPipeLine
- 关于Netty in active中第二章创建的服务端Handler不继承SimpleChannelInboundHandler的原因
- Netty In Action中文版 - 第八章:附带的ChannelHandler和Codec
- 一起学Netty(三)之 SimpleChannelInboundHandler
- Netty3.10.1:ChannelHandler中的事件分析之channelOpen
- Netty In Action中文版 - 第八章:附带的ChannelHandler和Codec
- ChannelHandler和ChannelPipeline
- netty源码分析之ChannelHandler
- Netty中Channel、ChannelPipeline、ChannelHandler、ChannelHandlerContext之间的关系
- Netty 源码分析之SimpleChannelInboundHandler