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

node.js - 连接到通过 IPv4 运行的服务器时出现长时间延迟

我正在从 NodeJS 连接到通过 IPv4 运行的 gRPC 服务器。<FQDN>:<port>我使用格式的地址(不是)创建了一个 gRPC 客户端<ipv4address>:<port>。服务器和客户端之间的通信是使用 SSL 加密的,所以在创建客户端时我不能用 ipv4address 替换 FQDN。在解析端点地址期间,我收到 4 个地址(因为我有 2 个网络接口):

解析器尝试解析首选 IPv6 的端点地址:

如您所见,每次尝试绑定都会导致 1 秒延迟,这在我的环境中会导致 2 秒延迟,然后再创建客户端通道。

有没有办法配置解析器以使其更喜欢 IPv4 地址,或者以某种方式减少此超时?

0 投票
0 回答
815 浏览

node.js - 错误:13 内部:序列化失败(使用 Google Cloud Vision Api)

我在发送在视觉 api 中以 react-native 拍摄的照片的 Base64 后出现此错误,我在某些地方读到错误必须在 grpc 但是,我没有直接使用它,我只是在使用结构视觉 api 文本检测基础知识

0 投票
1 回答
1359 浏览

ssl - 网页 gRPC + NGINX TLS 配置

我有一个 Node gRPC 服务器和一个 Web gRPC 客户端(带有 Angular 的 TS)。我使用 Nginx 作为代理来促进它们之间的通信。

我不知道如何使用 SSL 配置 Web gRPC 客户端 (TS)。我尝试将当前的 Nginx 配置和 Node 配置与 Node gRPC 客户端(不是 Web gRPC)一起使用。在那种情况下它起作用了。

节点 js 配置: 节点 js 配置

生成证书的脚本:

在上面的代码中,在 CN=dev 中,dev 是我服务器的 etc/hosts 文件中指向服务器自己地址的 DNS 条目。

Nginx 配置:

现在,web gRPC 部分(不工作给出了握手错误,没有正确的文档如何做到这一点,所以尝试查看这个和 grpcWeb 源代码并假设它会这样): web gRPC TLS 配置

这就是我现在所拥有的。任何帮助,将不胜感激。

0 投票
1 回答
1267 浏览

python - 为什么我的 Node.js gRPC 客户端需要 3 秒才能向我的 Python gRPC 服务器发送请求?

让我们首先承认我是一个 gRPC 菜鸟。如果我问了一个愚蠢的问题,请继续告诉我,但只有在解释了为什么它是愚蠢的之后。谢谢!:)

概述

我正在开发一个处理图像的应用程序。影响处理结果的变量可由用户更改。我想在保持跨平台兼容性的同时提供一个好看的 GUI。因此,我决定在 Python 中实现我的图像处理,并使用 Node.js 和 Electron 作为我的 GUI。

需要一种向 Python 后端发送和接收数据的方法,我决定使用 gRPC。因此,我有一个Node.js gRPC Client与一个Python gRPC Server配对。

在阅读了许多教程并了解了一些关于协议缓冲区的知识后,我能够成功地在两个程序之间传输数据。

设置

Node.js Electron 应用程序从用户那里获取输入,并向 Python 后端发送请求。请求的大小是一个小对象:

收到此请求后,Python 应用程序从指定的帧中读取streamSource并处理它。然后将此处理后的帧转换为 JPEG 格式并通过 gRPC 作为以下格式返回到 Node.js 应用程序Image

问题

我注意到在发出请求和接收到图像之间存在可变延迟。这个时间从几毫秒到近 3 秒不等!在分析 Python 代码后,我确定处理时间可以忽略不计。此外,Image通过 gRPC 返回所需的时间也可以忽略不计。

因此,在 RPC 执行和 Python 应用程序接收调用之间存在一个有趣的延迟。以下是一些带有时间的日志,可以更好地解释正在发生的事情(括号中的数字以秒为单位):

可以看到本例中从 Node.js RPC 执行到 Python 方法被调用的时间大约是 3 秒,而从 Python 方法执行到 Node.js 应用程序接收到的Image时间不到 1 秒 0 .o

编码

Python gRPC 服务器

Node.js 客户端:

协议缓冲区:

Node.js gRPC 调用:

tl;博士

为什么我的 Node.js 客户端请求需要这么长时间才能触发我的 Python 代码?

0 投票
1 回答
759 浏览

grpc - #grpc 节点客户端允许签名证书

我在服务器上有一个自签名的 grpc 服务,并让它在带有 dart 客户端的 dart 服务器上工作。但我不知道如何绕过或允许节点客户端的自签名证书。我试过这个:

但是当我打电话时,我的验证 checkServerIdentity 没有打电话。

有人有任何线索吗?

0 投票
2 回答
7921 浏览

node.js - GRPC - nodejs DNS解析失败

我正在使用通过 HTTPS 和自签名证书托管的 GRPC 服务。当我使用如下语法连接时:

我收到这样的错误

任何人都可以帮助我如何解决这个问题。

注意:我的操作系统是 Windows 10,nodejs -- v10.16.0,GRPC

0 投票
1 回答
1393 浏览

node.js - 预期目录:node-v83-linux-x64-musl。找到:[node-v72-linux-x64-musl]

grpc版本: 1.24.2

在部署我的 Node.js 应用程序时,我遇到了grpc package的二进制文件问题。

错误:

我在 Dockerfile 中尝试了这些命令:

  • npm rebuild
  • npm install --unsafe-perm
  • npm install --target=13.0.0 --target_platform=linux --target_arch=x64

Dockerfile(在这里找到):

我也尝试配置二进制文件的位置,但没有找到 node-v83-linux-x64-musl。配置二进制文件位置

相关问题:

我需要你的帮助!— murgatroid99

0 投票
2 回答
2371 浏览

grpc - TLS 中的 GRPC-Web 连接问题

我有一个 GRPC Web 客户端和一个 GRPC 服务器,我正在使用 envoy 代理从 HTTP 1.1 到 HTTP2 的转换。

我的服务器创建逻辑使用 TLS。代码如下:

我从我的反应客户端调用如下:

envoy.yaml 如下:

envoy 的 Dockerfile 如下:

我在以下情况下收到以下错误:

但是当我从后端服务器中删除 SSL 身份验证时。它工作正常。我还创建了一个 grpc 客户端,并且 TLS 可以正常工作。我无法在我的 TLS 特使配置中找到问题所在。

在特使日志中得到关注的进一步调查。 TLS error: 268435703:SSL routines:OPENSSL_internal:WRONG_VERSION_NUMBER

如果我通过直接使用 GRPC 客户端将 TLS 证书与 envoy 一起使用,则它可以正常工作。

0 投票
1 回答
336 浏览

grpc-node - 如何使用节点 grpc 获取客户端 IP 地址

之前我使用下面的代码来获取客户端 IPexpress.js

想知道使用grpc节点应用程序获取客户端IP的方法是什么。我尝试了 getPeer() ,即使 API 调用来自外部,它也始终提供 ipv4:127.0.0.1:33944 。

类似于下面的代码是否有效?

0 投票
1 回答
2931 浏览

node.js - 如何在 Nodejs 中使用 gRPC 流式传输字节?

gRPC 的新手,我正在尝试使用 grpc 流式传输视频文件,客户端和服务器都在 Node 中,运行服务时,我可以控制台记录服务器端的缓冲区,但是我无法从客户端获取任何内容, 谁能帮帮我,谢谢!

视频.proto:

server.js 中的实现:

和client.js:

下面是输出,左边是进入 gRPC 通道之前服务器端缓冲区的内容,右边是客户端的结果,每个块中没有任何内容: 在此处输入图像描述