当前位置: 首页 > 知识库问答 >
问题:

在Netty中创建子或嵌套通道/管道?

左丘成仁
2023-03-14

在 Netty 4.1 中,是否可以创建子通道/管道或嵌套通道/管道?

例如,我有一个管道,其中安装了各种编解码器,用于协议/序列化。在管道结束时,我将一条消息传递给我的应用程序级逻辑。过度简化的示例:

@Override
protected void channelRead0(ChannelHandlerContext ctx, Request request) throws Exception {
    try {
        Response response = applicationLogic.handle(request);
        ctx.writeAndFlush(response);
    } catch (Exception e) {
        log.error(e);
    }
}

然后,这个应用逻辑的句柄方法可以执行它想要的任何顺序逻辑。这清楚地分离了我的应用程序级别逻辑,但是,我想利用Netty的ChannelPipeline提供的“拦截过滤器模式的高级形式”。我想将管道公开到我的应用程序级别,以便用户可以轻松添加编解码器、事件侦听器、未捕获的异常处理程序等。

理想情况下,我希望能够创建某种类型的嵌套ChannelPipeline,它的头/尾将传播到外部管道中。例如,

A - > B -> { X -> Y -> Z } -> C

我可以在哪里公开{X-

有什么干净的方法来模拟这种行为吗?


共有1个答案

云何平
2023-03-14

不需要,Netty不支持嵌套管道。也就是说,您可以动态地修改ChannelPipeline,并将所需的ChannelHandlers放入其中(并删除旧的)

 类似资料:
  • 问题内容: 我正在使用以下示例代码创建频道: 所以在这里我得到了一个通道(将来的通道),但是我的应用程序吞吐量会很高,所以我认为一个通道是不够的,所以请让我知道我如何创建通道池。 我正在使用netty 4.0 问题答案: 请参阅http://netty.io/news/2015/05/07/4-0-28-Final.html上的部分

  • 问题内容: 说我要制作以下JSON 目前,这就是我实现的方式 似乎应该有一个更好的方法来做到这一点,而不是做更多的事情,然后将它们放置在主体中。有比我正在使用的方法更好的动态构建方法吗? 在此先感谢您的帮助! 问题答案: 如果您处理大量JSON数据,我真的建议您使用Gson或Jackson。这要方便得多,并且两个库都很好地支持与Java对象之间的相互转换(与通过JSONObjects手动构建JSO

  • 目前,您可以使用SocketAddress引导Netty以创建通道工厂。为了与JBoss AS7进行紧密集成并使用其托管套接字绑定,我需要在Netty通道工厂中使用已创建的ServerSocket,无融资创业。这可能吗?我没有找到任何相关的API。 我正在努力解决https://community.jboss.org/thread/203485 如果没有,我可以要求将其作为一个功能吗?

  • 我正在尝试从管道中自动创建Jenkins管道构建。 我有一个管道,它创建一个比特桶存储库并向其提交一些代码,包括一个Jenkinsfile。 我需要向此管道添加另一个步骤,然后为其创建管道生成,这将运行 Jenkinsfile 中的步骤。 我认为Jobs DSL应该能够处理这一点,但我找到的文档非常稀少,我仍然不完全确定是否有可能或如何做到这一点。 任何帮助都将不胜感激。我想生成的Pipeline

  • 我正在尝试使用动态ChannelHandler管道实现Netty 4. X。正如人们建议的“出于性能考虑,在运行时使用调用而不是管道修改”,我实现了一个Server、一个RouterInoundHander和一个Client来测试这个理论。但它不起作用。这是我的代码 计算机网络服务器 RouterInboundHandler 和客户 如代码所示,在Channel的连接初始化阶段创建了Channel