Как добавить ChannelInitializer в TcpServer в реакторе 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());
                    }
                })));
    }

Но с помощью этого PR: https://github.com/reactor/reactor-netty/pull/1175.

Как я могу добиться того же поведения с новым API?


person Óscar Burgos Martín    schedule 03.11.2020    source источник


Ответы (1)


Это устарело, поскольку в Reactor Netty 1.0.0 Bootstrap и ServerBootstrap больше не используются. https://github.com/reactor/reactor-netty/releases/tag/v1.0.0 В 0.9.x нет замены для этого конкретного варианта использования. В версии 1.0.0 заменой является doOnChannelInit. Если ваша сборка ограничивает использование устаревших API, пожалуйста, откройте запрос функции, и мы попытаемся выполнить обратный перенос API из версии 1.0.0.

person Violeta Georgieva    schedule 03.11.2020