问题标签 [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 投票
1 回答
1393 浏览

node.js - 预期目录:node-v83-linux-x64-musl。找到:[node-v72-linux-x64-musl]

grpc版本: 1.24.2

在部署我的 Node.js 应用程序时,我遇到了grpc package的二进制文件问题。

错误:

我在 Dockerfile 中尝试了这些命令:

  • npm rebuild
  • npm install --unsafe-perm
  • npm install --target=13.0.0 --target_platform=linux --target_arch=x64

Dockerfile(在这里找到):

我也尝试配置二进制文件的位置,但没有找到 node-v83-linux-x64-musl。配置二进制文件位置

相关问题:

我需要你的帮助!— murgatroid99

0 投票
2 回答
2371 浏览

grpc - TLS 中的 GRPC-Web 连接问题

我有一个 GRPC Web 客户端和一个 GRPC 服务器,我正在使用 envoy 代理从 HTTP 1.1 到 HTTP2 的转换。

我的服务器创建逻辑使用 TLS。代码如下:

我从我的反应客户端调用如下:

envoy.yaml 如下:

envoy 的 Dockerfile 如下:

我在以下情况下收到以下错误:

但是当我从后端服务器中删除 SSL 身份验证时。它工作正常。我还创建了一个 grpc 客户端,并且 TLS 可以正常工作。我无法在我的 TLS 特使配置中找到问题所在。

在特使日志中得到关注的进一步调查。 TLS error: 268435703:SSL routines:OPENSSL_internal:WRONG_VERSION_NUMBER

如果我通过直接使用 GRPC 客户端将 TLS 证书与 envoy 一起使用,则它可以正常工作。

0 投票
2 回答
2112 浏览

grpc - 如何在没有特使的情况下使用 grpc-web

我正在玩grpc& grpc-web。我能够运行一个简单的 grpc 服务器和 grpc-web 应用程序。但是我觉得设置需要太多的依赖项web-servergrpc-server并且envoy proxy.

有人成功grpc-web用于生产吗?我们是否需要包括特使在内的所有依赖项?

0 投票
1 回答
108 浏览

c# - 在 gRPC 中,无法将消息中的枚举值绑定到 dontnet core Dto

我需要在 Grpc 消息中定义一个字符串数组类型 dataType。不知道该怎么做。现在我正在做

这里我需要名称字段作为字符串数组类型。但它显示错误,在其中绑定数据时字段是只读类型:

在标题中我需要绑定数据

0 投票
0 回答
291 浏览

deployment - 您如何将 blazor wasm grpc-web 应用程序部署到 azure?

我是 blazor wasm 的新手。我重新制作了一个示例天气预报存根,以通过 dapper 使用 blazor wasm/grpc-web/identityserver4 (google auth)/postgres db 后端。

如果我通过 Visual Studio 2019 在本地运行它,那么它可以工作,但是当我尝试使用 Azure App Service 使用 azure 持续交付(这也是新的......哈哈)时,它复制了工件,但 Web 应用程序永远不会启动。我在想也许我需要一些命令来启动 app.server.exe 所以尝试从 azure 的网络(终端/控制台)手动运行它,但这也没有帮助。

然后我尝试使用 Visual Studio 2019 的发布功能,立即说不支持 grpc。我正在使用 grpc-web,所以我不确定。

我已经在 azure 上设置了 ssl 证书等,因此不存在与身份服务器等相关的错误。

无论如何,你们如何将这种组合(blazor wasm/grpc-web)组合部署到 azure/heroku 或您选择的任何主机?提前感谢您的帮助。

谢谢,阿琼

0 投票
1 回答
809 浏览

protocol-buffers - GRPC:在浏览器和服务器之间传递带有 proto.Message 字段的 JSON

我一直在努力在系统之间来回传递带有 Message 值的 JSON。走得更远了,但我还是不在。A Struct 似乎是一种方式,但即使我发送的结构看起来非常好,一旦被服务器接收到它就是空的。

Result从 Web 浏览器 (grpc-web) 传递到 Python 后端。Python 后端应该序列化为ResultJSON(以存储它)并再次返回。

发送前检查req.variables表明它确实是 a Struct,其中包含所有正确的字段。但是一旦另一端(服务器)收到它req.variables就是一个空的Struct. 出于测试目的,我尝试了objthat is simple {'key': 'value'},但结果是一样的。

所以我尝试了proto.google.protobuf.Struct.fromJavaScript

这适用于简单的obj(例如{"key": "val"}),但对于obj带有原始消息字段(例如上面)的它会导致:

或者我可以不用在 javascript 中使用 protobuf/json 来解决所有麻烦,而只需使用map?

但是,?type?如果值可以是任何东西(proto.MessageX、字符串、布尔值等),那会是什么?

我真的很想在变量中使用原始消息。选择 protobuf/grpc 的原因正是这个,能够在我们的整个平台上使用相同的类型,但这似乎阻碍了这个目标。我错过了什么?你会怎么做?

0 投票
1 回答
276 浏览

protobuf-net - 如何使用 Grpc 和 protobuf-net 在 Blazor Web Assembly 中注入依赖项

我正在使用 protobuf-net 使用 Grpc 构建 Web Assembly Blazor 来处理服务。我正在尝试以这种方式注入我想要的服务:

然后,我将我认为应该是依赖项的内容注入到 razor 组件中:

但我得到这个错误:

Microsoft.AspNetCore.Components.WebAssembly.Rendering.WebAssemblyRenderer [100] 未处理的异常呈现组件:无法为“Customer_Create”类型的属性“客户端”提供值。没有“ICustomerService”类型的注册服务。

非常感谢这里的任何帮助!

0 投票
1 回答
1406 浏览

node.js - gRPC-web 如何处理来自服务器端流的字节数据?

我想使用 grpc-web 将一个示例视频文件从后端 grpc 服务传输到浏览器,我根据官方 hello world 教程做了一些调整。顺便说一句,特使配置没有任何变化。视频文件被分成17个块,我可以在浏览器中接收到17条消息,但是里面什么都没有,我应该怎么做才能得到数据?

protobuf 定义:

server.js:

客户端.js:

无论如何,如果代理有问题,下面是我的 envoy.yaml:

服务器端记录的字节数: 在此处输入图像描述

并在浏览器中的控制台输出下方: 在此处输入图像描述

0 投票
2 回答
841 浏览

asp.net-core - 使用 gRPC-Web 和 protobuf-net 在工作服务中添加新方法时出现异常

我收到以下异常:

Microsoft.AspNetCore.Components.WebAssembly.Rendering.WebAssemblyRenderer[100] 未处理的异常呈现组件:“DefaultProxyCache 1' threw an exception. System.TypeInitializationException: The type initializer for 'DefaultProxyCache1”的类型初始化程序引发异常。---> System.ArgumentException:无效的通用参数参数名称:typeArguments at (wrapper managed-to-native) System.Reflection.RuntimeMethodInfo.MakeGenericMethod_impl(System.Reflection.RuntimeMethodInfo,System.Type[]) at System.Reflection.RuntimeMethodInfo .MakeGenericMethod(System.Type[] methodInstantiation) <0x342def8 + 0x000d6> in :0 at ProtoBuf.Grpc.Internal.ContractOperation.TryGetClientHelper() [0x0001b] in //src/protobuf-net.Grpc/Internal/ContractOperation.cs: 291 在 ProtoBuf.Grpc.Internal.ProxyEmitter.EmitFactory[TService] (ProtoBuf.Grpc.Configuration.BinderConfiguration binderConfig) [0x00477] 在 //src/protobuf-net.Grpc/Internal/ProxyEmitter.cs:238 在 ProtoBuf.Grpc.Internal.ProxyEmitter.CreateFactory[TService] (ProtoBuf.Grpc.Configuration.BinderConfiguration binderConfig) [0x0006d] in //src/protobuf-net .Grpc/Internal/ProxyEmitter.cs:123 at ProtoBuf.Grpc.Configuration.ClientFactory+DefaultProxyCache`1[TService]..cctor()[0x00000] in //src/protobuf-net.Grpc/Configuration/ClientFactory.cs: 81

我的项目使用 gRPC-Web、Blazor Web 程序集和 protobuf-net

这是我的服务合同:

实现是:

至于数据合同:

和,

在我返回服务中的客户列表之前,但我意识到我需要一个类来对消息进行建模,以便 protobuf-net 能够序列化,这就是 CustomerResultSet 的原因。尽管如此,它仍然无法正常工作。非常感谢任何帮助

0 投票
1 回答
395 浏览

ruby-on-rails - 来自我的 Rails Web 应用程序的 gRPC 请求

有谁知道如何使用 rails 应用程序向我的 gRPC 服务发送请求?就像我有我的 Rails Web 应用程序一样,当我单击 Web 应用程序中的按钮时,我想向我的 HELLO gRPC 服务发送请求?

假设这是我的 gRPC 请求