最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

如何将gRPC定义的API引入Web浏览器

IT培训 admin 4浏览 0评论

如何将gRPC定义的API引入Web浏览器

我们想为我们的gRPC微服务构建一个Javascript / HTML gui。由于浏览器端不支持gRPC,我们考虑使用web-socket连接到node.js服务器,该服务器通过grpc调用目标服务。我们很难找到一个优雅的解决方案来做到这一点。特别是,因为我们使用gRPC流来推动我们的微服务之间的事件。似乎我们需要第二个RPC系统,只是为了在前端和node.js服务器之间进行通信。这似乎是很多开销和必须维护的额外代码。

有没有人有这方面的经验,或者知道如何解决这个问题?

回答如下:

编辑:自2018年10月23日gRPC-Web project is GA,这可能是最正式/标准化的方式来解决您的问题。 (即使现在已经2018年......;))

来自GA-Blog:“gRPC-Web,就像gRPC一样,允许您使用Protocol Buffers在客户端(Web)和后端gRPC服务之间定义服务”契约“。然后可以自动生成客户端。[...]”

我们最近构建了gRPC-Web(https://github/improbable-eng/grpc-web) - 一个遵循提议的gRPC-Web协议的浏览器客户端和服务器包装器。该回购中的例子应该提供一个良好的起点。

如果您使用Golang,它需要一个独立的代理或gRPC服务器的包装器。代理/包装器修改响应以将响应主体中的预告片打包,以便浏览器可以读取它们。

披露:我是该项目的维护者。

如何将gRPC定义的API引入Web浏览器

我们想为我们的gRPC微服务构建一个Javascript / HTML gui。由于浏览器端不支持gRPC,我们考虑使用web-socket连接到node.js服务器,该服务器通过grpc调用目标服务。我们很难找到一个优雅的解决方案来做到这一点。特别是,因为我们使用gRPC流来推动我们的微服务之间的事件。似乎我们需要第二个RPC系统,只是为了在前端和node.js服务器之间进行通信。这似乎是很多开销和必须维护的额外代码。

有没有人有这方面的经验,或者知道如何解决这个问题?

回答如下:

编辑:自2018年10月23日gRPC-Web project is GA,这可能是最正式/标准化的方式来解决您的问题。 (即使现在已经2018年......;))

来自GA-Blog:“gRPC-Web,就像gRPC一样,允许您使用Protocol Buffers在客户端(Web)和后端gRPC服务之间定义服务”契约“。然后可以自动生成客户端。[...]”

我们最近构建了gRPC-Web(https://github/improbable-eng/grpc-web) - 一个遵循提议的gRPC-Web协议的浏览器客户端和服务器包装器。该回购中的例子应该提供一个良好的起点。

如果您使用Golang,它需要一个独立的代理或gRPC服务器的包装器。代理/包装器修改响应以将响应主体中的预告片打包,以便浏览器可以读取它们。

披露:我是该项目的维护者。

发布评论

评论列表 (0)

  1. 暂无评论