问题标签 [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 回答
2129 浏览

javascript - 来自 JavaScript 中 JSON 的 Protobuf 消息

在 python/C#/C/Go/... 生成的代码中,可以从 JSON 创建一个原型消息实例。例如,在 Python中你可以做google.protobuf.json_format.Parse(json, message). 我希望 [JavaScript 生成的代码(此处此处)提供相同的功能,但不幸的是,情况并非如此。

我目前正在发送我的 JSONStruct并收到相同的回复。所以现在我想把它打包Struct并取回消息。但我不知道怎么做。

0 投票
1 回答
3113 浏览

typescript - 如何在打字稿中使用 google.protobuf.Any 类型?

1.protocol buffer 3文件test.proto

2.我使用 grpc-web 构建 .ts 文件

3.如何在typescript中使用google.protobuf.Any type?

0 投票
1 回答
433 浏览

grpc - GRPC 中间件库是否支持 grpc-node?

GRPC 中间件库是否支持 grpc-node?我对记录 grpc proto 请求很感兴趣,看来我可能必须学习 golang 才能拥有日志记录功能?

0 投票
1 回答
653 浏览

azure - 将服务器托管在 Azure 上后,gRPC 客户端无法与 gRPC 服务器通信

以下代码片段显示了如何在 gRPC AspNet 核心应用程序中启用 gRPC Web:

客户端应用程序的代码如下所示:

当客户端代码(上图)托管在 localhost(开发机器)上时,它会从 gRPC 服务器接收回复。相同的客户端代码无法与托管在 Azure 上的服务器实例通信,并记录以下失败消息:

dbug:Grpc.Net.Client.Internal.GrpcCall[18] 发送消息。失败:Grpc.Net.Client.Internal.GrpcCall[20] 发送消息时出错。System.Threading.Tasks.TaskCanceledException:任务被取消。
在 System.Net.Http.TaskCompletionSourceWithCancellation 1.WaitWithCancellationAsync(CancellationToken cancellationToken) at System.Net.Http.Http2Connection.Http2Stream.SendDataAsync(ReadOnlyMemory1 缓冲区,CancellationToken cancelToken) 在 Grpc.Net.Client.Web.Internal.Base64RequestStream.WriteAsync(ReadOnlyMemory 1 data, CancellationToken cancellationToken) at Grpc.Net.Client.StreamExtensions.WriteMessageAsync[TMessage](Stream stream, ILogger logger, TMessage message, Action2 序列化程序,字符串 grpcEncoding,Nullable1 maximumMessageSize, Dictionary2 compressionProviders, CallOptions callOptions) 失败:Grpc.Net.Client.Internal.GrpcCall[6] 启动 gRPC 调用时出错。System.Threading.Tasks.TaskCanceledException:操作已取消。在 System.Net.Http.CancellationHelper.ThrowOperationCanceledException(Exception innerException, CancellationToken cancelToken) 在 System.Net.Http.CancellationHelper.ThrowIfCancellationRequested(CancellationToken cancelToken) 在 System.Net.Http.Http2Connection.Http2Stream.GetCancelableWaiterTask(CancellationToken cancelToken) 在 System. Net.Http.Http2Connection.Http2Stream.ReadResponseHeadersAsync(CancellationToken cancelToken) at System.Net.Http.Http2Connection.SendAsync(HttpRequestMessage request, CancellationToken cancelToken) at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request,
在 System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage 请求,CancellationToken cancelToken) 在 System.Net.Http.DiagnosticsHandler.SendAsync(HttpRequestMessage 请求,CancellationToken cancelToken) 在 Grpc.Net.Client.Web.GrpcWebHandler.SendAsyncCore(HttpRequestMessage 请求, System.Net.Http.HttpClient.FinishSendAsyncUnbuffered(任务1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts) at Grpc.Net.Client.Internal.GrpcCall2.RunCall(HttpRequestMessage 请求,Nullable`1 超时)处的 CancellationToken 取消令牌)信息:Grpc.Net.Client.Internal.GrpcCall[3] 调用失败,出现 gRPC 错误状态。状态码:'已取消',消息:''。dbug:Grpc.Net.Client.Internal.GrpcCall[4] 已完成 gRPC 调用。

我不知道是什么阻碍了这种交流的发生以及要实施什么解决方案。任何想法为什么?

作为旁注,我用尽了这张 github 票中的所有内容,但一点运气都没有。

0 投票
0 回答
845 浏览

flutter - 在 Flutter 项目中使用 Grpc Web

我希望有人可以帮助解决我目前正在为 Web 和 Mobile 创建 Flutter 应用程序并且我想使用 GRPC 和 WebGrpc 的问题。使用 Grpc 一切运行良好,但使用 Web Grpc 时出现错误

我收到以下错误 预期类型为“ClientChannel”的值,但得到类型为“GrpcWebClientChannel”的值之一

0 投票
1 回答
2202 浏览

asp.net-core - 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 服务器的相同客户端代码调用服务器会导致

Status(StatusCode="Unimplemented", Detail="Bad gRPC response. HTTP status code: 404")

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

介于两者之间

有什么想法我在这里想念的吗?

0 投票
1 回答
1133 浏览

grpc - 将 HTTP 和 gRPC 请求处理到 Envoy

需要使用 Envoy 将 HTTP 请求转换为 gRPC。后端微服务工作正常,它支持 gRPC,但不处理 Http,所以我需要使用 envoy 将请求转换为 grpc。

所以好处是,http 和 gRPC 可以一起处理。是否可以使用 Envoy,如果可以,我该如何在 Envoy 中进行配置。

0 投票
1 回答
1155 浏览

reactjs - grpc-web Typescript中的绑定拦截器

我正在尝试按照本教程https://grpc.io/blog/grpc-web-interceptor/为我的 grpc-web 客户端请求添加拦截器。使用解释如何将拦截器绑定到调用的最后一行,在打字稿中使用该调用我首先得到一个错误,因为 protoc-gen 编译器在构造函数中使用以下参数创建了一个客户端服务

所以我不能真正使用教程中解释的fromat

我尝试使用类似的格式

但它不起作用,我的拦截器中有断点,它们永远不会到达那个点。如何将拦截器绑定到呼叫?

编辑

我的拦截器代码不是什么花哨的东西,它只是教程中的代码,在某种程度上转换为 Typescript 但在这里

}

0 投票
2 回答
923 浏览

.net - 从 Web 应用程序调用 .Net 框架 gRPC 服务

我知道可以仅使用 .Net Framework(例如两个控制台应用程序)设置 gRPC 服务器和客户端场景。还可以使用 Grpc.AspNetCore.Web 包设置 Web 应用程序客户端(在我的情况下使用 Angular)和 .Net Core gRPC 服务器应用程序。

但是,当它不能与 Grpc.AspNetCore.Web 一起使用时,是否可以从 Web 应用程序调用 .Net 框架 gRPC 服务?

0 投票
1 回答
208 浏览

reactjs - 具有反应返回值和异步行为的 gRPC Web

所以我试图用 react 调用一个简单的后端服务(仅供参考,我对 react 或 javascript 不太了解)

我正在尝试将返回值模板化message(它应该具有 echoService.echo 响应的值)但应用程序一直显示“初始值”而不是实际响应类型,即使它显示在控制台中

我知道这与一些异步行为有关,但我不知道如何等待请求完成。