问题标签 [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.
protocol-buffers - grpc-web 使用通配符编译 proto 文件
我有一个文件夹protobuf
,里面有很多可以编译的 .proto 文件
这会生成grpc_web_pb.js
到/output
文件夹中,但我正在寻找一种不必调用protoc
每个文件的方法,是否有通配符之类的东西?
我试过了
但这不起作用,失败了no matches found: *.proto
reactjs - 如何使用reactjs在grpc调用中传递数组
我想使用“grpc-web-client”模块将一组对象发送到带有 reactjs 的 grpc 调用中。但它在发送对象数组时给了我一个错误。以下是错误:
我不明白为什么它不发送这个。以下是我要发送的对象数组的结构:
在 .proto 文件中定义如下:
请有人帮我解决这个问题。
typescript - 使用 grpc-web 为 vue 配置 Envoy
不确定 SO 是否是这个问题的正确位置,但我试一试。我需要让 grpc-web 在我的 Vue 前端运行,所以我了解到我需要 grpc 消息的代理。
运行在vue app
虚拟 linux 机器以及envoy
代理上,但老实说,整个端口配置对我来说有点神秘。这是我现在的envoy.yaml
我需要一些关于如何使用envoy proxy
is this conext 的帮助。我唯一知道的是正确的是socket_address
指向grpc_service
我的后端 grpc 服务器的。但是我在哪个端口上运行vue app
没有跨域以及这些如何prefixes
工作?
编辑:
我更新了我的envoy.yaml
配置,如果我在浏览器中打开网络服务器地址 192.168.1.125: 8080 ,我现在得到的是
当我打开 192.168.1.125: 8001时,我看到了该网站,但我收到了跨域警告,因为
所以我的问题是,我如何配置特使代理没有任何跨域问题意味着访问端口 8080 上的网络服务器?
更新:
我认为连接超时的根本原因与我的有关,http_filters
这应该只应用于/grpc
路由。但仍然无法找出有效的配置。
如果需要更多信息,请告诉我!
kubernetes - 使用 Contour Kubernetes Ingress 处理 CORS
目前允许 CORS 请求的最佳方式是什么?(鉴于 Contour Ingress 中的 CORS 支持当前位于“停车场”中)
我的特定用例是托管一个 GRPC 服务,该服务使反向代理。方便的是,contour 还支持开箱即用的 grpc-web,我们希望将其用于我们的 Web 服务。
但是,鉴于不支持 CORS,我们无法进行跨域请求。
除了让我们的 web 应用程序使用与 GRPC api 相同的域之外,目前还有其他解决方案可以满足我们的需求吗?
基本上,我们希望 envoy 的配置与GRPC Web 示例配置非常相似。
protoc - 使用 protoc-gen-grpc-web 生成原型定义时出现 TypeScript 定义文件的问题
我生成的原型定义有问题。
protoc-gen-grpc-web
我正在使用从这里获得的最新版本(版本 1.0.7)。
注意:我在 MacOS 和 Windows 以及 1.0.5 版本上都遇到了同样的问题。
我遇到的问题是我生成的定义缺少将其与其命名空间.
分开的定义Class
。
例如。我的输出将如下所示:
见行country?: contact_mechanism_pbCountry.AsObject,
。
contact_mechanism_pbCountry
应该是contact_mechanism_pb.Country
。
common_basic_pb
这发生在,contact_mechanism_pb
和的每种情况下banking_details_pb
。
但不适用于 和 的google_protobuf_timestamp_pb
情况google_protobuf_empty_pb
。
这是我的gen-protos
脚本的样子:
我尝试了很多不同的东西,但我无法使用这个工具获得预期的输出。
ssl - 网页 gRPC + NGINX TLS 配置
我有一个 Node gRPC 服务器和一个 Web gRPC 客户端(带有 Angular 的 TS)。我使用 Nginx 作为代理来促进它们之间的通信。
我不知道如何使用 SSL 配置 Web gRPC 客户端 (TS)。我尝试将当前的 Nginx 配置和 Node 配置与 Node gRPC 客户端(不是 Web gRPC)一起使用。在那种情况下它起作用了。
节点 js 配置: 节点 js 配置
生成证书的脚本:
在上面的代码中,在 CN=dev 中,dev 是我服务器的 etc/hosts 文件中指向服务器自己地址的 DNS 条目。
Nginx 配置:
现在,web gRPC 部分(不工作给出了握手错误,没有正确的文档如何做到这一点,所以尝试查看这个和 grpcWeb 源代码并假设它会这样): web gRPC TLS 配置
这就是我现在所拥有的。任何帮助,将不胜感激。
grpc - grpc-web TLS 是否需要客户端的任何配置?
我一直在寻找这个。仍然不确定 Envoy 和 Nginx 是否为 web-gRPC 客户端完成所有 TLS 工作。
就我而言,我的 Nginx 配置适用于 gRPC 客户端和服务器。但是,它不适用于 web-gRPC 客户端。
flutter - grpc-web 安全性如何在生产中工作?
我在带有 gRPC 的 Go 服务器和我的 Flutter Web 应用程序之间使用特使代理。我可以在 envoy 和 Go 服务器之间使用 TLS,这很好,但我担心的是 envoy 和我的 web 应用程序之间。如何保护此连接?什么是最好的方法?
go - 使用 Istio grpc-web 代理的 CORS 预检上的 golang gRPC 503
我正在尝试在 Kubernetes 中设置基于 go 的 gRPC 服务器,并通过 grpc-web 客户端发出请求。客户端首先运行 CORS 预检请求,该请求似乎到达了 gRPC 服务器。服务器在这些选项请求上返回 503。我可以使用 go gRPC 客户端直接连接到服务器,所以我认为如果 CORS 请求通过,其余的都可以正常工作。
- 这是来自服务器的 OPTIONS 请求的日志消息:
- 以下是使用 grpc-client 直接连接到 pod 时来自服务器的日志消息:
- 对于服务器,我使用的是 helloworld ( https://github.com/grpc/grpc-go/tree/master/examples/helloworld )
- 对于客户端,我通过在 helloworld 目录中使用 .proto 文件运行以下命令来生成 grpc-web 文件:
protoc --js_out=import_style=commonjs:. --grpc-web_out=import_style=commonjs,mode=grpcwebtext:. helloworld.proto
- 执行客户端的代码:
- 网关和虚拟服务:
- 服务: