Web 客户端与 gRPC 服务器通信
Posted
技术标签:
【中文标题】Web 客户端与 gRPC 服务器通信【英文标题】:Web client communicate with gRPC server 【发布时间】:2016-10-04 00:02:42 【问题描述】:我有一个 c++ 服务,我打算使用 gRPC 服务器公开它。 Web 浏览器与 gRPC 服务器通信的方式是什么?我在前端使用 angularJS。
我看grpc documentation。但找不到有关浏览器支持的信息。
【问题讨论】:
你能详细说明这个问题吗?我认为文档非常简单。可能你之前没用过rpc? @RomainHippeau 我更新了问题。是的,我以前没有使用过 gRPC。我更新了问题。简而言之,如何从 Web 浏览器与 gRPC 服务器通信? ***.com/questions/35065875/… grpc.io/faq 看来您需要翻译服务。如果不支持对象序列化和 rpc。这是一个陡峭的学习曲线。 How to bring a gRPC defined API to the web browser的可能重复 【参考方案1】:我使用了 grpc 网关。许多大型项目也使用它。 它将 GRPC RPC 翻译成 Rest / JSON。
https://github.com/gengo/grpc-gateway
【讨论】:
我使用 grpc-java 作为服务器,我知道 grpc-gateway 是在 go 中创建的。那么我可以在我的项目中使用它吗?怎么样?【参考方案2】:How to bring a gRPC defined API to the web browser http://www.grpc.io/faq/ 看来您需要翻译服务。如果不是,gwt 支持对象序列化和 rpc。这是一个陡峭的学习曲线。
【讨论】:
【参考方案3】:使用一些最近发布的技术(以及可能重复的问题one of the answers):我使用了grpcwebproxy
(在 Python grpc 服务器之上)和相应的ts-protoc-gen
插件来自不可能的。它直接在客户端/服务器之间“对话”gRPC(遵循初步的网络规范),不使用 REST 或 JSON 翻译,并允许您在客户端和服务器端使用 proto
文件:
https://improbable.io/games/blog/grpc-web-moving-past-restjson-towards-type-safe-web-apis
https://github.com/improbable-eng/grpc-web
【讨论】:
【参考方案4】:现在 gRPC web 可以使用了。
https://github.com/grpc/grpc-web
【讨论】:
以上是关于Web 客户端与 gRPC 服务器通信的主要内容,如果未能解决你的问题,请参考以下文章