一:关于ChannelHandler
ChannelHandler充当了处理入站 和 出战 数据的应用程序逻辑的容器。
例如实现ChannelInBoundHandler接口,可以接收入站事件和数据。
1.2 ChannelInboundHandler接口
类型 | 描述 |
---|---|
channelRegistered | 当 Channel 已经注册到它的 EventLoop 并且能够处理 I/O 时被调用 |
channelUnregistered | 当 Channel 从它的 EventLoop 注销并且无法处理任何 I/O 时被调用 |
channelActive | 当 Channel 处于活动状态时被调用;Channel 已经连接/绑定并且已经就绪 |
channelInactive | 当 Channel 离开活动状态并且不再连接它的远程节点时被调用 |
channelReadComplete | 当Channel上的一个读操作完成时被调用 |
channelRead | 当从 Channel 读取数据时被调用 |
ChannelWritabilityChanged | 当 Channel 的可写状态发生改变时被调用 |
userEventTriggered | 当channelInboundHandler.fireUserEventTriggered()方法被调用时会被调用,因为一个POJO被传经ChannelPipeline |
1.3 ChannelOutboundHandler接口。
出战操作和数据将由ChannelOutboundHandler处理,它的方法将被Channel、ChannelPipeline以及ChannelHandlerContext调用。
ChannelOutboundHandler 的一个强大的功能是可以按需推迟操作或者事件,这使得可以通过一些复杂的方法来处理请求。
类型 | 描述 |
---|---|
bind() | 当请求将Channel绑定到本地地址时被调用 |
connect | 当请求将channel连接到远程节点时被调用 |
disconnect | 当请求channel从远程节点断开时被调用 |
close | 当请求关闭channel的时候被调用 |
deregister | 当请求将channel从它的EventLoop注销时被调用 |
read | 当请求从Channel读取更多当数据时被调用 |
flush |