问题标签 [grpc-web]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1344 浏览

traefik - 如何在同一个项目中使用 Traefik 和 Envoy 来处理 grpc-web?

我在 grpc.mydomain.com 上使用 LetsEncrypt 在 traefik 上启动并运行了一项服务。但是,由于 CORS 的一些问题( https://github.com/containous/traefik/issues/4210),traefik 不支持路由 grpc-web 请求。Envoy 似乎是与 grpc-web 一起使用的 traefik 的替代品,但我不想重新配置所有内容。

如果我将特使放在 envoy.mydomain.com 上,那么它实际上首先会命中 traefik,而 traefik 无法将 grpc-web 请求路由到特使。所以这行不通。

如果我将特使放在 traefik 之外(mydomain.com:9091),那么特使就没有 traefik 所具有的 TLS 支持。

我需要将所有东西都切换到特使吗?有没有我没有考虑过的替代方案?欢迎任何指导:)

当前 Traefik 设置:

我还尝试设置这些以修复 CORS 错误,但无济于事。

0 投票
1 回答
602 浏览

grpc - 是否有多个 grpc 服务协同工作的示例

多个 gRPC 服务示例

您好,来自宁静的 Scala 游戏框架世界。

我想知道是否有人知道与将多个服务串在一起以相互调用相关的任何示例项目、视频、媒体文章。

到目前为止,我看到的所有示例都是与其他服务没有太多交互的独立服务。

我试图想象的一个关键示例是用户服务。例如,在创建用户期间,可能需要调用多个其他服务来处理与创建新用户相关的事务 1. 可能会调用 Orders 服务来创建订单 2. 可能会调用 Appointments 服务来安排第一次约会3. 可以调用推荐服务器来创建推荐

我从高层次上知道,使用从其他服务的照片定义创建的存根来调用这些服务作为用户服务的一部分,创建用户 rpc 调用,但真的是这样吗?

创建用户的 rpc 调用真的应该只使用存根并将逻辑实现到其他服务吗?

先感谢您。

0 投票
1 回答
782 浏览

reactjs - React 中的 gRPC 流式处理未按预期工作

我正在尝试在我的反应应用程序中测试 gRPC 流。虽然我遇到了一些麻烦。我们已经测试了我们的流媒体,它每 2 秒成功地流式传输一个事件,最多 8 个流。

但是,当我在我的 React 应用程序中尝试它时,流开始,然后在相当长的一段时间内什么都没有发生(大约等于完成流式传输所有数据所需的时间),然后它只一次注销所有数据。

这就是我设置组件的方式:

如上所述,我的输出是stream start wait +- 15 seconds then 8 lines of responses

如前所述,在绽放中,它按预期每 2 秒成功发送一个新流。与我的 React 应用程序不同,它只是等待很长时间,然后on data立即触发回调 8 次。

盛开

安慰

在我的网络选项卡中,StreamEvents 也处于等待启动状态 +- 15 秒。

0 投票
1 回答
107 浏览

protocol-buffers - 如何定义处理任何调用的 gRPC 服务?

我正在尝试做一些逆向工程,试图了解几个 .proto 文件中调用了哪些服务。我的问题是是否有可能在服务器上实现一个服务来处理所有的调用,并为我提供调用了哪个函数和服务的信息。

例子:

协议.proto


服务器.js


我想要做的是实现处理两个(所有)调用的第三个函数,并显示调用了哪个服务。像这样的东西:

有没有办法做到这一点?

谢谢你。

0 投票
1 回答
3674 浏览

grpc-web - 安装 protoc-gen-grpc-web

我目前正在使用 grpc-web 为我的服务编写一个简单的客户端。我创建了一个使用 protoc 成功编译的 service.proto 文件。当我尝试使用插件 protoc-gen-grpc-web 生成 gRPC-Web 服务客户端存根时出现了问题,尽管安装了后者但它不起作用。

收到以下错误:

有关如何解决此问题的任何建议?谢谢!

0 投票
0 回答
408 浏览

reactjs - 如何在 Javascript 客户端将 json 转换为 proto 消息格式?

我需要通过 Envoy 将 JSON 作为请求发送到 grpc API。目前,我正在使用来自 protoc 自动生成的代码的 setter 函数。有没有办法直接将 json(甚至是深层嵌套的)转换为 proto 消息并将其作为请求发送?

这是原型文件。

我使用 protoc 自动生成 *_pb.js 文件。

原型消息是指这种格式的数据。

对应的 JSON

这是我的反应代码。

0 投票
2 回答
6681 浏览

vue.js - 如何在 vue 中使用 grpc-web?

我正在尝试在我的 vue 应用程序中使用 grpc-web 客户端,如下所示:

当应用程序被编译时,编译器会抱怨:

如您所见,编译器抱怨自动生成的文件identity-service_pb.js

文件结构如下所示:

在此处输入图像描述

我究竟做错了什么?

更新

我需要 vue app 和 golang app 之间的 envoy 代理吗?

在此处输入图像描述

还是vue app可以直接和golang app通信?目前,我在他们之间没有特使代理。

0 投票
0 回答
527 浏览

grpc - 如何为我的 go 应用配置特使代理?

我正在尝试通过 grpc 从 vue 应用程序调用 go 应用程序,如下所示:

在此处输入图像描述

在它们之间,它是一个特使代理并且是必要的,如此处所述https://github.com/grpc/grpc-web#2-run-the-server-and-proxy。envoy 代理在 docker 容器、本地主机上的 vue 和 go 应用程序中运行。问题是,vue 应用程序无法访问 go 应用程序,因为我认为 envoy 运行在与 go 应用程序不同的网络上。Envoy 配置如下:

envoy 配置有什么问题?

0 投票
1 回答
1160 浏览

nginx - GRPC 流在写入之前关闭(通过 nginx 的 grpc_pass)

我正在使用 GRPCWebClientChannel 并且我有一个后端 grpc 服务器。

我正在使用grpc: ^2.1.3dart 的包

我正在从我的Flutter应用程序发出请求。

我有一个 nginx 反向代理设置来指向我的 grpc 后端。Flutter Web 客户端会向本地 nginx 服务器发出 grpc 请求。Nginx 然后将 gprc_pass 到后端 URL。

我在 dart 中的客户端代码如下所示:

这是我的 Nginx 配置:

请求到达后端,但在后端出现以下错误Stream closed before write could take place::

以下是日志:

0 投票
0 回答
60 浏览

grpc-web - gRPC 客户端以数组形式接收内容

我们在前端 Angular 应用程序上有一个 gRPC 客户端,连接到在 nodeJS 上运行的 gRPC 服务。当从客户端调用 API 时,以数组格式接收以特定消息类型返回的数据。例如-

gRPC 客户端上的这条消息需要像 message['array'][index] 一样解码

有没有办法使用密钥来获取这个?