标签: grpc-web

protoc-gen-js:程序未找到或不可执行

尝试编译我的原型 - 我需要编译它们以在我的反应应用程序中使用。但我收到这个错误。我运行命令如下:

cd src/main/proto && protoc -I=. *.proto --js_out=import_style=commonjs:. --grpc-web_out=import_style=commonjs,mode=grpcwebtext:.
Run Code Online (Sandbox Code Playgroud)

在哪里可以找到 protoc-gen-js?我没有遇到任何回购。

grpc protoc grpc-web

24
推荐指数
3
解决办法
2万
查看次数

如何将HTTP消息从另一个节点解析到gRPC服务器

我可以成功运行gRPC client,并gRPC serverc++现在我希望建立节点A和GRPC服务器即之间的通信node B的连接形象.

我可以参考下面的任何例子是我正在寻找的.

我有这个节点Ahttp消息(GET方法)我需要解析,即提取消息并在节点C上运行请求.我应该在节点A和gRPC服务器之间寻找什么.

提前致谢

http消息到gRPC服务器

c++ http grpc grpc-web

15
推荐指数
1
解决办法
362
查看次数

如何在 gRPC 角度应用程序中使用 typescript protobuf 生成的文件

总结问题

我正在学习如何使用 gRPC,并想尝试进行客户端-服务器连接。服务器(在 Elixir 中)可以工作,但我遇到了一些问题。但由于我主要是一名后端开发人员,我在 Angular 中实现它时遇到了更多的麻烦,希望得到一些帮助。

我在这个项目中使用Angular 8.2.9Angular CLI 8.3.8Node 10.16.0

我已经做了什么?

  1. 创建了一个新的 angular cli 项目 ng new test-grpc
  2. 使用 生成了一个模块和一个组件ng g...,并修改基本路由以具有工作页面和 url。
  3. 已安装的 Protobuf 和 gRPC 库 npm install @improbable-eng/grpc-web @types/google-protobuf google-protobuf grpc-web-client protoc ts-protoc-gen --save
  4. .proto从我的 Elixir 代码中取出文件并将其复制到一个文件夹中src/proto
  5. protoc在 package.json 中添加了一条命令scripts "protoc": "protoc --plugin=protoc-gen-ts=./node_modules/.bin/protoc-gen-ts.cmd --js_out=import_style=commonjs,binary:src/app/proto-gen --ts_out=service=true:src/app/proto-ts -I ./src/proto/ ./src/proto/*.proto"
  6. 叫命令生成中发现的js和TS文件src/app/proto-tssrc/app/proto-js
  7. 更换了任何_-所生成的文件的名称。
  8. 然后我尝试在 ngOnInit 中添加以下代码:https : //github.com/improbable-eng/grpc-web/tree/master/client/grpc-web#usage-overview …

protocol-buffers typescript protobuf.js angular grpc-web

9
推荐指数
1
解决办法
8897
查看次数

如何让 gRPC 在 Unity 游戏客户端 (c#/.NET) 和基于 Tonic (rust) 的服务器之间工作

所以我有一个使用Tonic crate用 Rust 编写的 gRPC 服务器。我已经编写了所有原型文件,并且可以使用基于 Tonic 的客户端和grpcurl发出请求,因此服务器端没有问题。

\n

我有一个基于 Unity 3D 的游戏,我想将其用作客户端。Unity 使用 C#/.NET/Mono,因此理论上应该很容易让 gRPC 客户端工作。事实证明这并不那么容易。

\n

根据互联网(特别是https://grpc.io/blog/grpc-csharp-future/),我们应该使用Grpc.Net.Client包。因此,我使用非常有用的NuGetForUnity工具将其放入 Unity 中。

\n

我收到以下错误,至少信息非常丰富

\n
\n

PlatformNotSupportedException:gRPC 需要在不支持 HTTP/2 上的 gRPC 的 .NET 实现上进行额外配置。必须使用 GrpcChannelOptions.HttpHandler 指定 HTTP 提供程序。配置的 HTTP 提供程序必须支持 HTTP/2 或配置为使用 gRPC-Web。有关详细信息,请参阅https://aka.ms/aspnet/grpc/netstandard

\n
\n

经过一番谷歌搜索后,我发现了以下链接,这些链接清楚地表明 Unity/Xamarin 和其他链接不支持 Grpc.Net.Client。

\n

https://github.com/grpc/grpc-dotnet/issues/1309#issuecomment-850303082

\n

https://learn.microsoft.com/en-us/aspnet/core/grpc/netstandard?view=aspnetcore-6.0

\n

总之:

\n
\n

不支持 HTTP/2 的 .NET 实现(例如 UWP、Xamarin 和 Unity)可以使用 gRPC-Web 作为替代方案。

\n
\n …

c# unity-game-engine rust grpc grpc-web

9
推荐指数
1
解决办法
5534
查看次数

为什么浏览器不支持 gRPC?

gRPC 基于 HTTP/2,它(假设)被浏览器广泛支持。因此,我觉得浏览器中的 gRPC 应该没有问题。

但是,很明显存在问题。协议grpc web是不同的,因为“由于浏览器限制”而存在。还有许多博客文章描述了部署复杂的技术堆栈以使 gRPC 从浏览器工作。

我错过了实际问题 - 为什么 gRPC 不能简单地在浏览器中工作?

grpc grpc-web

8
推荐指数
1
解决办法
1717
查看次数

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

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

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

grpc grpc-web

8
推荐指数
1
解决办法
4279
查看次数

IIS 上的 ASP.NET Core grpc-Web 返回 404

.NET Core gRPC-Web 客户端在 http://localhost:5000 上调用 ASP.NET Core gRPC-Web 服务器工作正常。

使用虚拟应用程序(例如“http://build.mycompany.ca/myapp”)调用部署到 IIS 服务器的服务器的相同客户端代码会导致

状态(StatusCode =“未实现”,详细信息=“错误的gRPC响应。HTTP状态代码:404”)

我的 ASP.NET Core 3.1 服务器设置正确。即 app.UseGrpcWeb(new GrpcWebOptions { DefaultEnabled = true });

介于两者之间

app.UseRouting()
Run Code Online (Sandbox Code Playgroud)

app.UseEndpoints(endpoints => {
    endpoints.MapControllers();
    endpoints
        .MapGrpcService<GrpcClientService>()
        .EnableGrpcWeb();
});
Run Code Online (Sandbox Code Playgroud)

我在这里缺少什么想法吗?

grpc asp.net-core grpc-web

8
推荐指数
1
解决办法
5502
查看次数

为什么 grpc-web 需要特使代理?

如果浏览器支持http/2,为什么还grpc-web需要envoy代理?

仅不支持 http/2 的旧浏览器才需要它吗?

grpc grpc-web envoyproxy

7
推荐指数
1
解决办法
1620
查看次数

如何使用 grpc-web 构建 react-redux 应用程序?

我有一个react-redux应用程序,我的团队使用grpc-web。我想知道 - 设计这种系统的最佳方法是什么?

目前的计划是创建 3 个抽象级别:

  1. API模块 -grpc-web客户端周围的promisified包装器
  2. Redux thunks level - 处理 API 的异步动作创建者
  3. React components props - 只会询问组件需要什么

所以components一无所知grpc,他们与动作创建者混在一起,动作创建者一无所知grpc,他们处理一个api模块,并且只有api模块与grpc-web存根一起使用。

我想走这条路的原因:

  • 动作创建器和组件中没有特定于 grpc 的代码
  • 我的基于 Promise 的 API 而不是 grpc-web 的基于回调的 API

我的问题是:

  1. 在 Redux 和 grpc-web 之间有一个抽象级别是个好主意吗?或者最好将这些东西保留在动作创建者的逻辑中?
  2. 有没有我应该想到的通用设计模式?(我在考虑“适配器”)
  3. 承诺grpc-webAPI是个好主意吗?如果是,编写一个函数并即时执行是否是个好主意?
  4. 我可以说我目前的计划是适配器模式吗?
  5. 如果我想使用适配器模式,我是否必须将数据集合的每个元素都映射到我自己的界面?我知道我的组件(可能还有 action-creators)不应该依赖grpc-webAPI,因为这个 API 将来可能会改变

design-patterns reactjs grpc redux grpc-web

7
推荐指数
1
解决办法
717
查看次数

Angular 通用与 GRPC

我在 Angular 通用应用程序中设置 GRPC 时遇到问题。

基本上,它会抛出一个错误:

ERROR Error: This environment's XHR implementation cannot support binary transfer.
Run Code Online (Sandbox Code Playgroud)

这个错误正在破坏生产中的应用程序(将其托管在 ubuntu 和 nginx 上),但是在本地环境中它可以工作。

如果我将 Angular 切换为不使用 SSR,那么它就可以正常工作。

我的假设是在 Node Express 服务器中我需要添加对 GRPC 的支持,但我不确定如何实现这一点。

有人遇到同样的问题吗?

谢谢!

node.js grpc server-side-rendering angular grpc-web

7
推荐指数
1
解决办法
328
查看次数