Реактор Netty TCPClient, не может отправить сообщение ИСПРАВЛЕНО - PullRequest
0 голосов
/ 18 марта 2019

Я впервые использую Reactor-netty. Я пытался настроить клиент Reactor Netty и использовать клиентское соединение для отправки данных.

Вот то, что я пытался

private Connection connection;

Connection connectToTcp(String host, int port){
        return TcpClient.create()
                        .host(host)
                        .port(port)
                        .option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 10000)
                        .connectNow();
}

public void sendData(ByteBuffer buffer){
    connection.outbound()
                .sendObject(Flux.just(Unpooled.copiedBuffer(buffer.array())))
                .then()
                .subscribe();
}

но данные не передаются, пока я не избавлюсь. данные передаются только когда я вызываю

connection.onDispose().block();

Что я не хочу делать, так как хочу поддерживать соединение живым и использовать то же самое для отправки других данных

UPDATE Это на самом деле работает ошибка была Unpooled.copiedBuffer(buffer.array()). Создаваемый ByteBuff был огромен, что заставило сервер закрыть соединение. Это было исправлено путем замены на Unpooled.copiedBuffer(buffer.slice())

...