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拦截

ChannelPipelines和ChannelHandlers

ChannelHandlerContext
ChannelHandlerContext代表了ChannelPipeline和ChannelHandler之间的关联,是ChannelHandler之间信息传递的桥梁。

ChannelPipeline、Channel、ChannelHandler、ChannelHandlerContext之间的关系。

Channel_ChannelHandler

1、Channel绑定到ChannelPipeline
2、ChannelPipeline绑定到包含ChannelHandler的Channel
3、ChannelHandler
4、当添加ChannelHandler到ChannelPipeline时,ChannelHandlerContext被创建
Channel中信息的传递:

Channel或者ChannelPipeline上调用write()方法,会让整个事件在管道中进行传递。
ChannelHandler之间的数据传递则通过ChannelHandlerContext调用方法来实现。
channel中事件的传递

事件传递给 ChannelPipeline 的第一个 ChannelHandler
ChannelHandler 通过关联的 ChannelHandlerContext 传递事件给 ChannelPipeline 中的 下一个
ChannelHandler 通过关联的 ChannelHandlerContext 传递事件给 ChannelPipeline 中的 下一个






本文转自秋楓博客园博客,原文链接:http://www.cnblogs.com/rwxwsblog/p/7814386.html,如需转载请自行联系原作者
目录
相关文章
|
1月前
|
编解码 开发者
Netty Review - 深入理解Netty: ChannelHandler的生命周期与事件处理机制
Netty Review - 深入理解Netty: ChannelHandler的生命周期与事件处理机制
70 0
|
1月前
|
网络协议 Java 容器
《跟闪电侠学Netty》阅读笔记 - ChannelHandler 生命周期
《跟闪电侠学Netty》阅读笔记 - ChannelHandler 生命周期
49 0
《跟闪电侠学Netty》阅读笔记 - ChannelHandler 生命周期
|
8月前
|
存储 前端开发 Java
Netty 爱好者必看!一文详解 ChannelHandler 家族,助你快速掌握 Netty 开发技巧!
Netty 爱好者必看!一文详解 ChannelHandler 家族,助你快速掌握 Netty 开发技巧!
178 0
|
11月前
|
移动开发 安全 前端开发
Netty实战(十二)预置的ChannelHandler和编解码器(二)
HTTPS、WebSocket的添加使用和大型数据写入以及几种常见的序列化)
64 0
|
11月前
|
安全 Java 关系型数据库
Netty实战(十一)预置的ChannelHandler和编解码器(一)
作为一个通讯框架,通讯数据的安全性也是不可或缺的一部分。一般常见的像TLS/SSL这样的安全协议我们都应该熟悉。 我们在访问安全网站时都遇到过这些协议,但是它们也可用于其他不是基于HTTP的应用程序,如安全SMTP(SMTPS)邮件服务器甚至是关系型数据库系统。
109 0
|
11月前
|
存储 缓存 安全
Netty实战(六)ChannelHandler和ChannelPipeline
ChannelHandler 的生命周期发生在ChannelHandler被添加到 ChannelPipeline 中或者被从 ChannelPipeline 中移除时。这些方法中的每一个都接受一个 ChannelHandlerContext 参数
146 0
netty系列之:channelPipeline详解
netty系列之:channelPipeline详解
|
编解码 缓存 安全
【Netty】ChannelHandler和codec
前面学习了Netty的codec框架,下面接着学习ChannelHandler与codec之间的关联。
108 0
【Netty】ChannelHandler和codec
|
缓存 Java API
【Netty】ChannelHandler和ChannelPipeline
前面学习了Netty的ByteBuf,接着学习ChannelHandler和ChannelPipeline。
122 0
【Netty】ChannelHandler和ChannelPipeline
|
消息中间件 编解码 移动开发
Netty常用招式——ChannelHandler与编解码(二)
Netty常用招式——ChannelHandler与编解码(二)
152 0
Netty常用招式——ChannelHandler与编解码(二)