如何在 reactor netty 中将 ChannelInitializer 添加到 TcpServer

How to add a ChannelInitializer to TcpServer in reactor netty

我有一个 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 开始通过这个 PR 弃用了方法 bootstraphttps://github.com/reactor/reactor-netty/pull/1175.

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

这已被弃用,因为在 Reactor Netty 1.0.0 中 BootstrapServerBootstrap 不再使用。 https://github.com/reactor/reactor-netty/releases/tag/v1.0.0 0.9.x 中没有替代此特定用例的方法。在 1.0.0 中,替换为 doOnChannelInit 如果您的构建限制使用已弃用的 API,请打开功能请求,我们将尝试从 1.0.0 版本向后移植 API。