Обработка Vert.x NetSocket writeQueueFull при использовании EventBus - PullRequest
0 голосов
/ 24 апреля 2018

В документации Vert.x показан шаблон для записи в заполненные сокеты.

NetServer server = vertx.createNetServer(
    new NetServerOptions().setPort(1234).setHost("localhost")
);
server.connectHandler(sock -> {
  sock.handler(buffer -> {
    sock.write(buffer);
    if (sock.writeQueueFull()) {
      sock.pause();
      sock.drainHandler(done -> {
        sock.resume();
      });
    }
  });
}).listen();

Как реализовать этот шаблон, если вы пишете в сокет через EventBus из другого Verticle ?

Anпример:

vertx.eventBus().publish(writeHandlerID, buffer);

1 Ответ

0 голосов
/ 26 апреля 2018

Начиная с Vert.x 3.5.1, обратное давление не поддерживается в EventBus.В следующей версии планируется реализовать потоковую передачу с обратным давлением поверх EventBus и веб-сокетов.

...