问题标签 [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.
typescript - 如何在 gRPC Web 中使用 async/await 模式?
我正在开发一个 Vue.js Web 应用程序,我正在使用 gRPC 来确保通信。
在前端,我使用的是 gRPC 的 web 版本:grpc-web
.
一切正常;但是,当我在商店中进行 API 调用时,例如:
async/await
在我的 Vue 文件中进行调用时如何使用该模式,例如:
并等待 API 调用完成以恢复我的程序过程?
谢谢!
nuxt.js - grpc-web 中生成的 proto 文件中的错误说 proto 未定义
我正在尝试使用 nuxtjs 运行 grpc-web。我面临的问题仅在我运行“npm run dev”时发生。如果我运行“npm run start”,即生产模式,它不会发生。
我已包含所有文件,当我运行它并尝试访问网页时,它显示此错误“未定义原型”。此错误来自 protoc 命令生成的 proto 文件。
谁能指出我解决这个问题的正确方向?
javascript - GRPC 客户端错误:14 不可用:无法连接到所有地址
我正在尝试使用以下代码测试我的 grpc 客户端连接。我有 .net 核心 grpc 服务器并使用节点 js grpc 客户端进行连接。但是出现“无法连接到所有地址”错误。但是能够将 .net grpc 服务器连接到 .net grpc 客户端。非常感谢任何帮助。
不确定我是否遗漏了 grpc 客户端代码下方的任何内容。
我得到以下错误:
有人可以帮我解决这个问题。
rxjs - 可重试 grpc-web server-streaming rpc
我正在尝试使用 rxjs.Observable 包装 grpc-web 服务器流客户端,并且如果说服务器返回错误,则能够执行重试。
考虑以下代码。
服务器在(?)发出“错误”之后发出“结束”事件,所以看起来我必须从源 observable 中删除“结束”处理程序。
结束/完成流的“Rx-y”方式是什么?
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 的机器。
先感谢您。
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;49mFAILURE:构建失败并出现异常。
其中:脚本'/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)
是否可以同时运行这两个版本,网络版和移动版?
proxy - 如何为 2 个 grpc 服务配置特使代理?
我正在为 grpc-web 使用特使代理,并且在一项服务上一切正常,但现在我正在注册其他服务,但遇到了问题。我认为路由配置会起作用,但是当我尝试访问端点时,它给了我一个DNS resolution failed
inbloomRPC。
我应该转移到边车特使网格配置吗?我一直在避免这种情况,因为它增加了开发的复杂性,但在我解决这个问题的研究中,它出现了很多。
我在 MacOS Catalina 中使用 docker-compose 运行它。
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() 时失败,因为没有其他错误消息并且调试不是很简单,所以欢迎了解可能导致此错误的原因:)
谢谢你
asp.net-core - Asp.net:不支持“应用程序/grpc-web”
我在浏览器上运行了 Asp.net core 和 gRPC……但现在我得到了:
关于如何追踪这一点的任何想法?