我在通过 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
使用 forwarding
来自 ngrok 的网址 dart bin/client.dart
尽管服务器正在监听 8080,但客户端正在尝试连接到标准端口 443 上的 ngrok url 以获取 https。
我正在考虑使用 HTTP2(gRPC 所依赖的),但根据 this ngrok 应该支持它(我正在运行版本
2.3.35
)。我错过了什么或做错了什么?
最佳答案
原来ngrok
http
表现不佳选项。
切换到 proto:tcp
解决了我的问题。
我想这是因为在选择 proto: http
时,ngrok 期望 gRPC 没有提供一些东西。 !
关于grpc - 由于连接被强制终止,使用 ngrok 测试 gRPC 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59554059/