我在通过ngrok公开gRPC服务器时遇到了一些问题。
我从这里中跟踪并下载了演示代码。
通过localhost连接是可以的,但是通过ngrok连接会导致以下错误:
捕获错误: gRPC错误(2,HTTP/2错误:连接错误:连接被强制终止。(errorCode: 10)
下面是我在~/.ngrok2/ngrok.yml文件中为ngrok使用的隧道配置:
tunnels:
grpc:
proto: http
addr: 8080
bind_tls: true
region: eu
inspect: true这就是我到目前为止所做的:
dart bin/server.dartngrok grpclib/src/client.dart以使用ngrok中的forwarding urldart bin/client.dart虽然服务器正在监听8080,但客户端试图连接到标准端口443上的https的ngrok的url。
我正在考虑使用HTTP2 ( gRPC所依赖的),但是根据这,ngrok应该支持它(我正在运行2.3.35版本)。
我错过了什么或者做错了什么?
发布于 2020-01-01 19:48:26
结果发现,ngrok在http选项方面表现不佳。
转到proto:tcp解决了我的问题。
我想这是因为ngrok要求gRPC在选择proto: http时没有提供一些东西!
发布于 2022-06-14 08:29:13
更具体地说
ngrok.yml
tunnels:
grpc:
proto: tcp
addr: 5001
inspect: false配置ngrok.yml后,点击终端中的ngrok start grpc
你会得到一个类似于这个tcp://0.tcp.in.ngrok.io:15048的地址
使用0.tcp.in.ngrok.io:15048检查响应。
我使用失眠来检查grpc响应。
如果不想配置ngrok.yml,可以使用./ngrok tcp 5001作为替代选项
https://stackoverflow.com/questions/59554059
复制相似问题