由于连接被强行终止,使用 ngrok 测试 gRPC 失败
Testing gRPC with ngrok fails due to connection forcefully terminated
我在通过 ngrok 公开 gRPC 服务器时遇到一些问题。
我已经关注并从 here 下载了演示代码。
通过 localhost 连接没问题,但通过 ngrok 连接导致我出现以下错误:
Caught error: gRPC Error (2, HTTP/2 error: Connection error: Connection is being forcefully terminated. (errorCode: 10))
这是我在 ~/.ngrok2/ngrok.yml
文件中用于 ngrok 的隧道配置:
tunnels:
grpc:
proto: http
addr: 8080
bind_tls: true
region: eu
inspect: true
这就是我到目前为止所做的:
dart bin/server.dart
ngrok grpc
- 编辑
lib/src/client.dart
以使用来自 ngrok 的 forwarding
url
dart bin/client.dart
虽然服务器正在侦听 8080,但客户端正在尝试连接到标准端口 443 上的 ngrok url 以获得 https。
我正在考虑使用 HTTP2(gRPC 所依赖的),但根据 this ngrok 应该支持它(我是 运行 版本 2.3.35
)。
我错过了什么或做错了什么?
事实证明 ngrok
使用 http
选项时效果不佳。
切换到 proto:tcp
解决了我的问题。
我想那是因为 ngrok 在选择 proto: http
!
时期望 gRPC 没有提供某些东西
我在通过 ngrok 公开 gRPC 服务器时遇到一些问题。
我已经关注并从 here 下载了演示代码。
通过 localhost 连接没问题,但通过 ngrok 连接导致我出现以下错误:
Caught error: gRPC Error (2, HTTP/2 error: Connection error: Connection is being forcefully terminated. (errorCode: 10))
这是我在 ~/.ngrok2/ngrok.yml
文件中用于 ngrok 的隧道配置:
tunnels:
grpc:
proto: http
addr: 8080
bind_tls: true
region: eu
inspect: true
这就是我到目前为止所做的:
dart bin/server.dart
ngrok grpc
- 编辑
lib/src/client.dart
以使用来自 ngrok 的 dart bin/client.dart
forwarding
url
虽然服务器正在侦听 8080,但客户端正在尝试连接到标准端口 443 上的 ngrok url 以获得 https。
我正在考虑使用 HTTP2(gRPC 所依赖的),但根据 this ngrok 应该支持它(我是 运行 版本 2.3.35
)。
我错过了什么或做错了什么?
事实证明 ngrok
使用 http
选项时效果不佳。
切换到 proto:tcp
解决了我的问题。
我想那是因为 ngrok 在选择 proto: http
!