我在通过ngrok公开gRPC服务器时遇到一些问题。
我已经关注并从here下载了演示代码。
通过本地主机的连接很好,但是通过ngrok连接会导致以下错误:
捕获的错误:gRPC错误(2,HTTP / 2错误:连接错误:连接被强制终止。(错误代码: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
网址dart bin/client.dart
尽管服务器正在侦听8080,但客户端正在尝试在HTTP的标准端口443上连接到ngrok的URL。
我正在考虑使用HTTP2(gRPC依赖于HTTP2,但是根据this,ngrok应该支持它(我正在运行版本2.3.35
)。
我想念什么或做错什么了?
结果显示ngrok
在http
选项下的表现不佳。
切换到proto:tcp
解决了我的问题。
我想这是因为ngrok期望在选择proto: http
时gRPC无法提供某些东西!