问题标签 [grpc-node]

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 回答
160 浏览

node.js - 两个内部 Cloud Run node.js 微服务如何通过 gRPC 成功通信?

Google Cloud Run 的新手,尝试让两个 node.js 微服务通过 gRPC 进行内部通信。

客户端界面:

客户端代码:

服务器代码:

服务器设置为监听 443。

当服务对公共请求开放时,上述方法似乎有效,但当您将服务器设置为内部时无效。有任何想法吗?

0 投票
0 回答
169 浏览

node.js - 有没有办法根据 loadSync 方法使用的选项生成 pb 文件?

使用动态代码生成时,我们可以.proto使用以下方式加载文件:

我们可以设置keepCase选项来保留字段名称,不要将它们更改为驼峰式。和enums选项,所以我们可以使用枚举的字符串表示。

现在,我正在使用静态代码生成。面对以上两个问题,下面是我的服务的一个方法实现:

以下是我面临的问题:

  • 使用 proto3 时无法设置默认值,想要将 page参数的默认值设置为1, NOT 0
  • 我需要手动将枚举从数字转换为字符串表示。
  • 来自 RESTful API 响应的字段是蛇案例,但是,protoc插件生成具有驼峰案例字段的模型。所以我想保留案例。grpc_tools_node_protocgrpc_tools_node_protoc_ts
  • 如您所见,水合过程既不方便又乏味。我需要调用设置器来一一设置字段的值。
0 投票
1 回答
751 浏览

grpc - 对健康检查协议感到困惑

我已阅读以下文档、源代码和问题:

我提供一个例子并尝试解释:

我不清楚以下几点:

  1. 中的服务名称是否statusMap需要与协议缓冲区文件中的服务名称相同?或者可以任意指定服务名称。如果是这样,服务名称如何映射到协议缓冲区中定义的服务?

从健康检查协议:

服务器应手动注册所有服务并设置个人状态

  1. 为什么我们需要手动注册?如果可以生成服务代码,为什么 grpc 不帮我们自动注册服务名statusMap呢?(想象一下,一一设置100个服务的状态)

  2. 服务状态是硬代码,不能在应用程序运行时更改。如果我的服务在运行时由于配置错误等原因不可用,下游服务不可用,但服务的状态始终是服务(因为它是硬代码),如果是这样,健康检查是什么意思?

对于 RESTful API,我们可以提供一个/health-check/pingAPI 来检查整个服务器是否正常运行。

0 投票
0 回答
96 浏览

node.js - 有没有更方便的方法将普通的 js 对象映射到 grcp 响应类?

这是 RESTful API 响应 json:

UserServiceImpl.ts

如您所见,我必须GetUserByLoginnameResponse手动将普通的 javascript 对象(API 响应)映射到类。这是繁琐且低效的。

我正在使用静态代码生成,因此GetUserByLoginnameResponse该类是根据.proto文件中定义的 IDL 生成的。

user.service.proto

0 投票
2 回答
1535 浏览

grpc - 为什么grpc-go可以在同一个地址和端口运行grpc server和http server,而grpc-node不能

我已经阅读了这个答案:https ://stackoverflow.com/a/56943771/6463558,它说没有办法使用grpc-node包在相同的地址和端口上运行 gRPC 服务器和 HTTP 服务器。

localhost:3000但是我可以使用包在相同的地址和端口(例如,两者都使用)创建 gRPC 服务器和 HTTP 服务器grpc-go。这是一个例子:https ://github.com/mrdulin/grpc-go-cnode/blob/master/cmd/server/main.go#L79

那么,为什么 grpc-node 和 grpc-go 行为不一致。这有意义吗?

我期望的结果是,无论在grpc中实现什么语言,行为都应该是一致的。所以grpc服务器应该能够与同一个系统进程中Node的标准库http创建的服务器共享同一个端口。

0 投票
1 回答
172 浏览

angularjs - ngx GRPC错误解析HTTP / 2预期'P'(80)在字节0处得到'O'(79)失败

我有一个运行良好的 GRPC 服务器(使用 BloomRPC 测试)。我有一个使用 Angular 和 ngx-grpc 构建的前端。从我的 grpc 客户端发送请求时,我在服务器端收到以下错误。知道有什么问题吗?

0 投票
0 回答
7689 浏览

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

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

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

我得到以下错误:

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

0 投票
1 回答
1249 浏览

python - gRPC 节点 Js 客户端:“找不到方法”

我有一个用 python 实现的 gRPC 服务器,我正在从 NodeJS 调用一个 RPC,但它给出了一个错误“找不到方法”。当我使用python客户端调用时,请求成功。

stream_csv.proto

客户端.js

服务器.py

import grpc import stream_csv_pb2 import urllib.request from urllib.error import HTTPError, URLError from concurrent import futures

错误

0 投票
1 回答
143 浏览

c# - 为什么双向流在 CompleteAsync 之前被阻塞

我不明白为什么只有使用CompleteAsync().

如果我以此更改结尾,我会收到消息,但在响应中下一个WriteAsync失败,因为流已关闭。

如果我没有完成请求,响应消息永远不会出现。

任何想法 ?

注意:服务器正在运行。

0 投票
0 回答
106 浏览

javascript - grpc/javascript 中的 SBE 协议支持

我们计划使用 grpc 进行 web ui 和服务器通信。我们还打算使用 SBE 作为通信协议。在这方面我有两个问题

  1. 我们可以使用带有 grpc 的 SBE 协议而不是 protobuf。
  2. 我们是否支持 JavaScript/typescript 对 SBE 消息进行编码/解码。

感谢对此的任何指示。