如何反压 TCP 客户端

How to back-pressure TCP client

我有一个Vert.x NetServer,并从客户端接受一个连接,假设我暂停socket ReadStream,那么我不会从连接接收任何缓冲区,同时,假设客户端继续发送消息,我想知道是否有可能反压客户端停止而不是继续发送?如果不可能,那些传入的数据存储在哪里?我可以检查有多少数据已经进入但未被读取吗?

感谢任何帮助。

看来你所有的问题都已经被官方文档解决了:

https://vertx.io/docs/vertx-core/java/#streams

传入消息存储在写入队列中。如果写队列满了,可以用pause()方法要求客户端暂停,用resume()方法恢复。

或者,这也包含在文档中,您可以使用 Pipe 来为您处理。