:::tips 在入站处理器中,要么调用**super.channelRead(ctx,msg),要么调用ctx.fireChannelRead(msg)**,必须调用其中一个将数据传递给下一个handler,否则调用链就会断掉 ::: 下面列出了接口 ChannelInboundHandler 的生命周期方法。这些方法将会在数据被接收时或者与其对应的 Channel 状态发生改变时被调用。正如我们前面所提到的,这些方法和 Channel 的生命周期密切相关。
    image.png

    • channelRegistered 当 Channel 已经注册到它的 EventLoop 并且能够处理 I/O 时被调用
    • channelUnregistered 当 Channel 从它的 EventLoop 注销并且无法处理任何 I/O 时被调 用
    • channelActive 当 Channel 处于活动状态时被调用;Channel 已经连接/绑定并且已经就 绪
    • channelInactive 当 Channel 离开活动状态并且不再连接它的远程节点时被调用
    • channelReadComplete 当 Channel 上的一个读操作完成时被调用
    • channelRead 当从 Channel 读取数据时被调用 **(用于唤醒下一个入站处理器)**
    • ChannelWritabilityChanged当 Channel 的可写状态发生改变时被调用。可以通过调用 Channel 的 isWritable()方法来检测 Channel 的可写性。与可写性相关的阈值可以通过Channel.config().setWriteHighWaterMark()和Channel.config().setWriteLowWaterMark()方法来 设置
    • userEventTriggered 当 ChannelnboundHandler.fireUserEventTriggered()方法被调用时被调用。