grpc - 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 服务器端流服务的工作区。
解决方案
如果我正确理解您的问题,您需要一个用于 gRPC-Web 的 Java 客户端,以便您的客户端可以通过 gRPC-Web 代理(例如Envoy gRPC-Web)与 HTTP/1.1 通信,因为您无法直接与 HTTP/2通信由于 Azure 网络限制,您的服务?
理论上这应该是可能的。JavaScript 实现是因为在浏览器中,除了 JSON 转码之外别无选择。JavaScript 实现确实实现了服务器端流,这是另一个要求,并确认这应该可以通过 HTTP/1.1 实现。
然而,在快速搜索中,我没有发现 gRPC-Web 的其他(即非 JavaScript)客户端实现。
推荐阅读
- ios - 如何快速获取响应 JSON
- c - Winsock2 线程参数抛出异常访问冲突
- cordova - 'mat-card' 不是已知元素,但我在其他页面上使用过它
- pfsense - 如何从命令行启动 pfSense 菜单?
- azure - Azure API 管理 - 如何使用 Azure CLI 设置 VNET/子网?
- python - 如何获取给定语音通道的 ID?- 不和谐.py
- python - 如何使用 python 从 csv 文件中绘制条形图?
- python - 如何在 tkinter python3 中为按钮添加边框颜色
- reactjs - state in useEffect 第二个参数 无限循环
- html - CSS - 如何更改滚动条高度