我有一台服务器需要将消息推送到几天前它收到请求的客户端。现在收到的请求具有客户端所在的 NAT 路由器的 IP 地址。
我想知道我是否可以以某种方式将消息推送给没有公共 IP 并且位于 NAT 路由器后面的客户端(或以某种方式建立 TCP 连接)?
我有一台服务器需要将消息推送到几天前它收到请求的客户端。现在收到的请求具有客户端所在的 NAT 路由器的 IP 地址。
我想知道我是否可以以某种方式将消息推送给没有公共 IP 并且位于 NAT 路由器后面的客户端(或以某种方式建立 TCP 连接)?
简短的回答:没有。
除非您知道目标路由器的当前公共 IP 地址并且路由器转发所需的传输层端口(也称为目标 NAT 或反向 NAT)。
解决此问题的一种非常常用的方法是客户端不断轮询服务器。