Netty 4中ChannelHandlerContext.sendUpstream的替代品是什么

Netty 4中ChannelHandlerContext.sendUpstream的替代品是什么,netty,netty4,Netty,Netty4,我正在使用Netty 3将应用程序升级为Netty 4。目前许多处理程序的代码如下所示: public class SomeHandler extends SimpleChannelUpstreamHandler { @Override public void channelOpen(final ChannelHandlerContext ctx, final ChannelStateEvent e) { // do stuff with input // ....

我正在使用Netty 3将应用程序升级为Netty 4。目前许多处理程序的代码如下所示:

public class SomeHandler extends SimpleChannelUpstreamHandler {

@Override
public void channelOpen(final ChannelHandlerContext ctx, final ChannelStateEvent e) {
     // do stuff with input
     // ....
     // then call the sendUpstream method
      ctx.sendUpstream(e);
 }

}

我正在寻找如何将其转换为Netty 4。我看到
ChannelOutboundHandlerAdapter
现在取代了
SimpleChannelUpstreamHandler
,但仍然有几个问题:

  • ChannelStateEvent
    在Netty 4中不再可用,现在接收频道事件的机制是什么
  • ctx.sendUpstream(e)在那里做什么,如何在Netty 4中复制

  • 在这种情况下,您将覆盖
    channelActive(…)
    ,并调用
    ctx.fireChannelActive()
    以替换
    sendUpstream(…)

    我猜channelActive就是channelOpen的替代品。好。但在channelOpen中,ctx.sendUpstream(e);正在调用…在被重写的channelActive?ctx.fireChannelActive()或override super方法中,该调用的替换将是什么?谢谢!我感觉这一部分处理的是如何在管道中的处理程序之间传播事件。您是否碰巧知道文档中解释这一点的部分?或者其他指南?尝试过谷歌搜索,但找不到任何有用的信息和ChannelPipeline的javadocs。因此,在名为
    channelActive
    的方法中,我需要调用
    ctx.fireChannelActive()
    。。。第一个问题是,为什么我用处理channelActive的方法再次激活channelActive?这不会导致循环吗?显然,这会在下一个通道处理程序中调用
    channelActive
    !我认为前面的API中有ctx.sendUpstream,这使得管道中的下一个组件被激活变得更加明显。只是一个反馈