首页 > 解决方案 > Java中的Grpc-Web客户端

问题描述

我正在尝试从 Java 客户端连接到 grpc-service。问题是该服务目前仅支持 http1.1 上的 grpc-web,这是因为在部署该服务的 Azure App 服务中支持 http2 的限制。来自 io.grpc 的 grpc-java 客户端库仅支持通过 http2 协议的 grpc,这掩盖了意义,不幸的是,它对我不起作用。

我设法使用来自 apache 和 okhttp3 的 HTTP 客户端使用服务,但这适用于一元调用,不适用于服务器端流服务。

是否有人知道我可以使用的 grpc-web java 客户端库或使用便利 Http 读取 grpc-web 服务器端流服务的工作区。

标签: grpcgrpc-javaazure-appservicegrpc-web

解决方案


如果我正确理解您的问题,您需要一个用于 gRPC-Web 的 Java 客户端,以便您的客户端可以通过 gRPC-Web 代理(例如Envoy gRPC-Web)与 HTTP/1.1 通信,因为您无法直接与 HTTP/2通信由于 Azure 网络限制,您的服务?

理论上这应该是可能的。JavaScript 实现是因为在浏览器中,除了 JSON 转码之外别无选择。JavaScript 实现确实实现了服务器端流,这是另一个要求,并确认这应该可以通过 HTTP/1.1 实现。

然而,在快速搜索中,我没有发现 gRPC-Web 的其他(即非 JavaScript)客户端实现。


推荐阅读