如果服务器和客户端托管在不同的机器上,gRPC“无法选择子通道”

问题描述

如果使用本地主机,服务器和客户端连接成功。这是我在 python 中连接到远程服务器的方法

with grpc.insecure_channel('x.x.x.x:50051',options=(('grpc.enable_http_proxy',0),)) as channel:

设置端口的服务器代码定义为:

server.add_insecure_port('[::]:50051')

我尝试将其更改为“0.0.0.0:50051”,但没有帮助。有人知道这里的问题吗?

解决方法

我遇到了同样的问题,即使在禁用防火墙的同一台机器上的客户端和服务器也是如此。 我通过确保服务器没有使用“localhost”来解决我的问题。当服务器使用本地主机而客户端使用 PC 的 IP 地址时,它不起作用。 我必须将客户端和服务器的主机设置为可以在您的网络上访问的物理 IP 地址。