使用EventBus时处理Vert.x NetSocket writeQueueFull

时间:2018-04-24 13:35:36

标签: java sockets vert.x

Vert.x documentation中,它显示了写入已满的套接字的模式。

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 写入套接字,如何实现此模式?

一个例子:

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

1 个答案:

答案 0 :(得分:1)

从Vert.x 3.5.1开始,EventBus不支持背压。有计划在下一版本的EventBus和websockets之上实现带背压的流式传输。