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

如何在Reactor网络中为TcpServer添加ChannelInitializer

江光明
2023-03-14

我有一个NettyServerCustomizer,它的下一个代码是:

@Override
    public HttpServer apply(final HttpServer httpServer) {
        return httpServer.tcpConfiguration(tcpServer -> tcpServer
            .bootstrap(serverBootstrap -> serverBootstrap
                .childHandler(new ChannelInitializer<SocketChannel>() {
                    @Override
                    public void initChannel(final SocketChannel ch) throws Exception {
                        final ChannelPipeline p = ch.pipeline();
                        p.addFirst(new MyCustomChannelInboundHandlerAdapter());
                    }
                })));
    }

但是reactor-netty从版本0.9.10开始就不推荐使用bootstrap方法,请访问:https://github.com/reactor/reactor-netty/pull/1175。

如何使用新的API获得相同的行为?

共有1个答案

滕璞瑜
2023-03-14

这是不推荐的,因为在Reactor Netty 1.0.0中,不再使用bootstrapserverbootstrap。https://github.com/reactor/reactor-netty/releases/tag/v1.0.0在0.9.x中没有替换这个特定的用例。在1.1.0中,替换的是DoonChannelInit如果您的构建限制了不推荐使用的API的使用,请打开一个特性请求,我们将尝试从1.1.0版本回端口API。

 类似资料:
  • 我对任何逻辑都是新手,我有一个问题我无法解决... 我把“布局类型”和“网络类型”设为“随机”,并勾选了“启动时申请”的复选框……一开始,我就有了一个不错的社交网络 然而代理的诞生和死亡...问题是,当我添加代理时,新创建的代理没有连接!所以我,当所有最初的特工都死了,我发现我自己有特工,但没有网络! 我该怎么办?添加新代理时,我希望它与其他代理连接:s 谢谢!!!

  • 在reactor Netty之前,我将创建Netty Tcp服务器的方式是创建服务器引导并添加我的自定义管道类。Reactor-Netty有tcpServer.create(),但似乎我必须创建一个新的函数接口,它接受NettyInbound和NettyOutbound并返回一个Mono。但是,如果我想添加一个构建管道的ChannelInitializer,我必须阻塞以获得NettyContext

  • 在Reactor Netty中,当通过向TCP通道发送数据时,任何发布服务器都可以工作。但是,如果不是简单的即时而是使用带有延迟元素的更复杂的flux,那么它就会停止正常工作。例如,如果我们使用这个hello world TCP echo服务器,它将按照预期工作: 但是,如果我们将更改为 那么我们将期望对于每一个接收到的项目,都将产生一个延迟一秒的输出。 但是,服务器的行为方式是,如果它在间隔期间

  • 问题内容: 我正在尝试将网络驱动器安装为卷。这是我正在尝试的命令 我在Windows上运行此命令,并且数据目录显示为空。如何在Windows主机上将该网络目录作为卷挂载并在容器内访问它? 使用本地目录可以正常工作,因此以下命令可以正常工作。 我可以使其在Linux中工作,因为我可以将cifs-utils共享安装在本地目录上,并将该目录用作卷。 编辑:看起来这是不可能的:如何在Docker for

  • 问题内容: 我知道在linux内核中,我们可以在传输层添加我们自己的协议,类似于TCP,UDP等。 是否有任何钩子可以在网络层上注册类似于IP,ARP的新协议,可以将数据包传输到应用程序,以及如何在Linux内核中添加此协议? 问题答案: 要处理从用户空间到协议的通信,请使用内核套接字API注册协议。这使您可以从用户空间创建普通套接字。 看一下相关代码示例的蓝牙/ RFCOM套接字实现。 要注册协

  • 本文向大家介绍Docker 将容器添加到网络,包括了Docker 将容器添加到网络的使用技巧和注意事项,需要的朋友参考一下 示例 此命令将myAwesomeApp-1容器连接到app-backend网络。将容器添加到用户定义的网络时,嵌入式DNS解析器(它不是功能齐全的DNS服务器,并且不可导出)允许网络上的每个容器解析同一网络上的其他容器。此简单的DNS解析器在默认网桥bridge网络上不可用。