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

typescript - 如何在 gRPC Web 中使用 async/await 模式?

我正在开发一个 Vue.js Web 应用程序,我正在使用 gRPC 来确保通信。

在前端,我使用的是 gRPC 的 web 版本:grpc-web.

一切正常;但是,当我在商店中进行 API 调用时,例如:

async/await在我的 Vue 文件中进行调用时如何使用该模式,例如:

并等待 API 调用完成以恢复我的程序过程?

谢谢!

0 投票
1 回答
480 浏览

nuxt.js - grpc-web 中生成的 proto 文件中的错误说 proto 未定义

我正在尝试使用 nuxtjs 运行 grpc-web。我面临的问题仅在我运行“npm run dev”时发生。如果我运行“npm run start”,即生产模式,它不会发生。

我已包含所有文件,当我运行它并尝试访问网页时,它显示此错误“未定义原型”。此错误来自 protoc 命令生成的 proto 文件。

谁能指出我解决这个问题的正确方向?

0 投票
0 回答
7689 浏览

javascript - GRPC 客户端错误:14 不可用:无法连接到所有地址

我正在尝试使用以下代码测试我的 grpc 客户端连接。我有 .net 核心 grpc 服务器并使用节点 js grpc 客户端进行连接。但是出现“无法连接到所有地址”错误。但是能够将 .net grpc 服务器连接到 .net grpc 客户端。非常感谢任何帮助。

不确定我是否遗漏了 grpc 客户端代码下方的任何内容。

我得到以下错误:

有人可以帮我解决这个问题。

0 投票
1 回答
1037 浏览

nginx - 在向本地服务器发出 grpc-web 请求时获取 ERR_INVALID_HTTP_RESPONSE

我正在一个角度应用程序中尝试 grpc-web hello world 程序,通过 nginx 访问本地 python 服务器,我在浏览器中收到 ERR_INVALID_HTTP_RESPONSE 错误。我认为该请求甚至没有命中 nginx 代理。虽然我可以通过 python 客户端直接和通过代理访问服务器。

helloworld.proto

客户端.ts

蟒蛇服务器.py

nginx.conf

面临的错误

任何指针我该如何解决这个问题?谢谢

0 投票
1 回答
433 浏览

rxjs - 可重试 grpc-web server-streaming rpc

我正在尝试使用 rxjs.Observable 包装 grpc-web 服务器流客户端,并且如果说服务器返回错误,则能够执行重试。

考虑以下代码。

服务器在(?)发出“错误”之后发出“结束”事件,所以看起来我必须从源 observable 中删除“结束”处理程序。

结束/完成流的“Rx​​-y”方式是什么?

0 投票
0 回答
152 浏览

c# - grpc-web over azure hybrid conenction throws 试图以访问权限禁止的方式访问套接字

我正在尝试在 azure 的 webapp 中运行 blazor 应用程序,但数据库位于本地域中。所以 Azure 混合连接是进入本地域的好主意。由于某些限制,我们无法直接链接到数据库,并选择在本地域中创建一个 api 来为我们执行此操作。azure webapp 和本地 api 之间的通信通过 grpc-web 进行。当它从我的本地计算机工作到在 IIS 中运行 api 的服务器时,从 azure 调用 api 会导致以下错误:

Grpc.Core.RpcException: Status(StatusCode="Internal", Detail="Error started gRPC call. HttpRequestException: 尝试以访问权限禁止的方式访问套接字。 (:443) SocketException: 尝试是以访问权限禁止的方式访问套接字。”)

我现在的问题是我可以通过混合连接进行 grpc-web 调用吗?阅读混合连接我发现它应该支持 grpc 调用之间的通信。

在混合连接管理器中,它声明连接可用且已启动。我还可以 tcpping 到从 azure 运行 api 的机器。

先感谢您。

0 投票
0 回答
345 浏览

flutter - Fluter 跨平台网页版和移动版

我正在尝试使用协议缓冲区为 Web 和移动设备构建一个跨平台。所以,在我的代码中,我有一个登录功能,我需要导入 grpc_web:

问题是当我在网络上运行它(使用 chrome)时它很好,但对于移动设备我得到以下错误:

在 dsu_site 中运行“flutter pub get”...以调试模式在 sdk gphone x86 上启动 lib/main.dart ... lib/main.dart 无效的 depfile:/home/sfm1977/Programming/dsu_site/.dart_tool/flutter_build/efe6e5ca256642d6c0ca767b5f0e6af5 /kernel_snapshot.d 无效的 depfile:/home/sfm1977/Programming/dsu_site/.dart_tool/flutter_build/efe6e5ca256642d6c0ca767b5f0e6af5/kernel_snapshot.d ../../.pub-cache/hosted/pub.dartlang.org/grpc-2.7.0 /lib/src/client/transport/xhr_transport.dart:17:8: 错误: 未找到: 'dart:html' import 'dart:html'; ^ ../../.pub-cache/hosted/pub.dartlang.org/http-0.12.2/lib/src/browser_client.dart:6:8:错误:未找到:'dart:html'导入'飞镖:html'; ^ ../../.pub-cache/hosted/pub.dartlang.org/grpc-2.7.0/lib/src/client/transport/xhr_transport.dart:40:9:错误:找不到类型“HttpRequest” . 最终的 HttpRequest _request;^^^^^^^^^^^ ../../.pub-cache/hosted/pub.dartlang.org/grpc-2.7.0/lib/src/client/transport/xhr_transport.dart:168: 27:错误:找不到类型“HttpRequest”。void _initializeRequest(HttpRequest request, Map<String, String> metadata) { ^^^^^^^^^^^ ../../.pub-cache/hosted/pub.dartlang.org/grpc-2.7.0 /lib/src/client/transport/xhr_transport.dart:181:3:错误:找不到类型“HttpRequest”。HttpRequest createHttpRequest() => HttpRequest(); ^^^^^^^^^^^ ../../.pub-cache/hosted/pub.dartlang.org/http-0.12.2/lib/src/browser_client.dart:34:18:错误: 'HttpRequest' 不是一种类型。最终 _xhrs = {}; ^^^^^^^^^^^ ../../.pub-cache/hosted the fowling /pub.dartlang.org/grpc-2.7.0/lib/src/client/transport/xhr_transport.dart:40 :9: 错误:'HttpRequest' 不是类型。最终的 HttpRequest _request;^^^^^^^^^^^ ../../.pub-cache/hosted/pub.dartlang.org/grpc-2.7.0/lib/src/client/transport/xhr_transport.dart:66: 14:错误:找不到获取器:'HttpRequest'。案例 HttpRequest.HEADERS_RECEIVED: ^^^^^^^^^^^ ../../.pub-cache/hosted/pub.dartlang.org/grpc-2.7.0/lib/src/client/transport/xhr_transport .dart:69:14:错误:找不到吸气剂:'HttpRequest'。case HttpRequest.DONE: ^^^^^^^^^^^ ../../.pub-cache/hosted/pub.dartlang.org/grpc-2.7.0/lib/src/client/transport/xhr_transport .dart:82:30:错误:“ProgressEvent”不是一种类型。_request.onError.listen((ProgressEvent 事件) { ^^^^^^^^^^^^^ ../../.pub-cache/hosted/pub.dartlang.org/grpc-2.7.0/lib /src/client/transport/xhr_transport.dart:168:27: 错误:'HttpRequest' 不是类型。void _initializeRequest(HttpRequest request, Map<String,

  • 'XhrClientConnection' 来自'package:grpc/src/client/transport/xhr_transport.dart' ('../../.pub-cache/hosted/pub.dartlang.org/grpc-2.7.0/lib/src /client/transport/xhr_transport.dart')。尝试将名称更正为现有方法的名称,或定义名为“HttpRequest”的方法。HttpRequest createHttpRequest() => HttpRequest(); ^^^^^^^^^^^ ../../.pub-cache/hosted/pub.dartlang.org/grpc-2.7.0/lib/src/client/transport/xhr_transport.dart:200: 11:错误:'HttpRequest' 不是类型。最终的 HttpRequest 请求 = createHttpRequest(); ^^^^^^^^^^^ ../../.pub-cache/hosted/pub.dartlang.org/http-0.12.2/lib/src/browser_client.dart:58:34:错误: 'Blob' 不是一种类型。var blob = xhr.response as Blob ?? 斑点([]);^^^^ ../../.pub-cache/hosted/pub.dartlang.org/http-0.12.2/lib/src/browser_client.dart:46:
  • 'BrowserClient' 来自'package:http/src/browser_client.dart' ('../../.pub-cache/hosted/pub.dartlang.org/http-0.12.2/lib/src/browser_client.dart ')。尝试将名称更正为现有方法的名称,或定义名为“HttpRequest”的方法。var xhr = HttpRequest(); ^^^^^^^^^^^ ../../.pub-cache/hosted/pub.dartlang.org/http-0.12.2/lib/src/browser_client.dart:58:42:错误:没有为“BrowserClient”类定义方法“Blob”。
  • 'BrowserClient' 来自'package:http/src/browser_client.dart' ('../../.pub-cache/hosted/pub.dartlang.org/http-0.12.2/lib/src/browser_client.dart ')。尝试将名称更正为现有方法的名称,或定义名为“Blob”的方法。var blob = xhr.response as Blob ?? 斑点([]);^^^^ ../../.pub-cache/hosted/pub.dartlang.org/http-0.12.2/lib/src/browser_client.dart:59:20:错误:方法'FileReader'是' t 为“BrowserClient”类定义。
  • 'BrowserClient' 来自'package:http/src/browser_client.dart' ('../../.pub-cache/hosted/pub.dartlang.org/http-0.12.2/lib/src/browser_client.dart ')。尝试将名称更正为现有方法的名称,或定义名为“FileReader”的方法。var reader = FileReader(); ^^^^^^^^^^ 未处理的异常:FileSystemException(uri=org-dartlang-untranslatable-uri:dart%3Ahtml; message=StandardFileSystem 仅支持 file:* 和 data:* URI) [38;5;248m# 0 StandardFileSystem.entityForUri (package:front_end/src/api_prototype/standard_file_system.dart:33:7)[39;49m [38;5;248m#1 asFileUri (package:vm/kernel_front_end.dart:599:37)[39; 49m [38;5;248m#2
    writeDepfile (package:vm/kernel_front_end.dart:739:21)[39;49m

[38;5;244m[39;49m [38;5;248m#3
FrontendCompiler.compile (package:frontend_server/frontend_server.dart:554:15)[39;49m

[38;5;244m[39;49m [38;5;248m#4
_FlutterFrontendCompiler.compile (package:flutter_frontend_server/server.dart:43:22)[39;49m

[38;5;248m#5 starter (package:flutter_frontend_server/server.dart:180:27)[39;49m [38;5;248m#6 main (file:///b/s/w/ir/cache /builder/src/flutter/flutter_frontend_server/bin/starter.dart:13:30)[39;49m

[38;5;244m#7 _startIsolate。(dart:isolate-patch/isolate_patch.dart:299:32)[39;49m [38;5;244m#8
_RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:168:12)[39;49m

FAILURE:构建失败并出现异常。

  • 其中:脚本'/home/sfm1977/flutter/packages/flutter_tools/gradle/flutter.gradle'行:900

  • 出了什么问题:任务“:app:compileFlutterBuildDebug”执行失败。

进程 'command'/home/sfm1977/flutter/bin/flutter'' 以非零退出值 1 结束

  • 尝试:使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。运行 --scan 以获得完整的见解。

  • 在https://help.gradle.org获得更多帮助

10 秒内构建失败异常:Gradle 任务 assembleDebug 失败,退出代码为 1 退出(sigterm)

是否可以同时运行这两个版本,网络版和移动版?

0 投票
0 回答
365 浏览

proxy - 如何为 2 个 grpc 服务配置特使代理?

我正在为 grpc-web 使用特使代理,并且在一项服务上一切正常,但现在我正在注册其他服务,但遇到了问题。我认为路由配置会起作用,但是当我尝试访问端点时,它给了我一个DNS resolution failedinbloomRPC。

我应该转移到边车特使网格配置吗?我一直在避免这种情况,因为它增加了开发的复杂性,但在我解决这个问题的研究中,它出现了很多。

我在 MacOS Catalina 中使用 docker-compose 运行它。

0 投票
1 回答
639 浏览

reactjs - 使用 grpc 流在反序列化响应时失败

我们正在尝试使用带有网络核心后端的流,但出现反序列化错误

protoc 是 3.14.0 版 grpc-web-gen 是 1.2.1

生成客户端的命令是:protoc -I=./protos ./protos/*.proto --js_out=import_style=commonjs,binary:./dist --grpc-web_out=import_style=commonjs+dts,mode=grpcwebtext: ./dist

我们成功连接到端点并检索数据,并且调用在绑定使用 response.getMessage() 时失败,因为没有其他错误消息并且调试不是很简单,所以欢迎了解可能导致此错误的原因:)

谢谢你

0 投票
2 回答
1118 浏览

asp.net-core - Asp.net:不支持“应用程序/grpc-web”

我在浏览器上运行了 Asp.net core 和 gRPC……但现在我得到了:

关于如何追踪这一点的任何想法?