一、前言
前面学习了Netty的ByteBuf,接着学习ChannelHandler和ChannelPipeline。
二、ChannelHandler和ChannelPipeline
2.1 ChannelHandler
在ChannelPipeline中,ChannelHandler可以被链在一起处理用户逻辑。
1. Channel生命周期
Channel接口定义了一个简单但是强大的状态模型,该模型与ChannelInboundHandler API紧密联系,Channel有如下四种状态。
Channel的生命周期如下图所示。
当状态发生变化时,就会产生相应的事件。
2. ChannelHandler的生命周期
ChannelHandler定义的生命周期如下图所示。
Netty定义了ChannelHandler的两个重要的子类
· ChannelInboundHandler,处理各种入站的数据和状态的变化。
· ChannelOutboundHandler,处理出站数据并允许拦截的所有操作。
3. ChannelInboundHandler接口
下图展示了ChannelInboundHandler接口生命周期中的方法,当接受到数据或者其对应的Channel的状态发生变化则会调用方法