kko*_*ski 5 java grpc grpc-java
我想阻止客户端流媒体。该协议的定义如下所示:
rpc RecordRoute(stream Point) 返回 (RouteSummary) {}
正如文档中所述,对于某些类型的流调用,只能使用异步存根:
一个非阻塞/异步存根,它对服务器进行非阻塞调用,并异步返回响应。您可以仅使用异步存根进行某些类型的流调用。
那么我怎样才能使该调用阻塞/同步呢?是否可以?
阻塞存根只能用于客户端仅发送单个请求的 RPC。对于客户端流式调用,您只能使用异步存根。生成的阻止存根代码不包含客户端流或双向流方法的 RPC 方法。
如果您想避免由于异步请求而导致过度缓冲,您可以使用CallStreamObServerAPI 进行手动流量控制。通过某些外部同步(例如 a )CountDownLatch,异步 API 可以同步运行。了解gRPC 的手动流量控制示例如何工作。