我们想要为我们的 gRPC 微服务构建一个 Javascript/HTML gui。由于浏览器端不支持 gRPC,我们想到使用 web-sockets 连接到 node.js 服务器,该服务器通过 grpc 调用目标服务。
我们努力寻找一个优雅的解决方案来做到这一点。特别是,因为我们使用 gRPC 流在微服务之间推送事件。
看来我们需要第二个RPC系统,只是为了前端和node.js服务器之间的通信。这似乎需要维护大量开销和额外代码。
有谁有做类似事情的经验或者知道如何解决这个问题?
编辑:自2018年10月23日起gRPC-Web项目正式上线 https://grpc.io/blog/grpc-web-ga,这可能是解决您的问题的最官方/标准化的方法。 (即使现在已经是 2018 年了……;))
来自 GA 博客:“gRPC-Web,就像 gRPC 一样,允许您使用 Protocol Buffers 定义客户端(Web)和后端 gRPC 服务之间的服务“契约”。然后可以自动生成客户端。[...]”
我们最近构建了 gRPC-Web (https://github.com/improbable-eng/grpc-web https://github.com/improbable-eng/grpc-web) - 遵循建议的 gRPC-Web 协议的浏览器客户端和服务器包装器。该存储库中的示例应该提供一个良好的起点。
如果您使用 Golang,它需要一个独立的代理或 gRPC 服务器的包装器。代理/包装器修改响应以将预告片打包在响应正文中,以便浏览器可以读取它们。
披露:我是该项目的维护者。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)