目前我有充当客户端的移动用户,他们可以通过该计算机上正在运行的服务器连接到他们的家庭计算机。
问题是,动态IP地址和端口转发存在问题。
我已经考虑过NAT遍历,但这并不适用于所有情况。
理想情况下,我希望他们只是在移动应用中添加用户名和密码,并在启动时作为服务器的参数,并让他们与我在其他地方托管的中间服务器进行通信。这样他们就不必费心去做了。
问题是,他们正在运行的服务器不知道移动应用程序何时在此方案中请求信息,或者响应什么。
所以我正在寻找实施建议或替代方案。真的,任何事情都会受到赞赏。
答案 0 :(得分:0)
如果我正确理解了这个问题,客户想要联系NAT设备后面的家用电脑。如果是这样,这是VoIP技术的常见问题。已知可靠的方法来绕过动态IP地址和NAT。特别针对NAT问题的处理,基于UDP Hole Punching的两种技术是STUN和ICE。
如果您的解决方案不适用于VoIP,您仍然可以使用UDP打孔技术与NAT后面的计算机实时连接 - 而且您不必拥有STUN / ICE服务器,但是您必须了解很多关于NAT /路由和不同类型的NAT设备。
答案 1 :(得分:0)
当服务器和客户端都在防火墙/路由器后面时,或者在这种情况下,当客户端在动态IP上并且服务器位于防火墙/路由器后面时,打孔是没有价值的。
按照您的建议使用中间人服务器是正确的方法。我真的不明白这个问题。让用户在您的服务器上注册一个帐户,让他在本地服务器和手机中指定该帐户。然后让本地服务器和电话都使用提供的帐户连接到您的服务器。
通过这样做,您的互联网服务器知道将电话请求转发到哪个本地服务器。
答案 2 :(得分:0)
如果家庭计算机连接到您在其他地方托管的服务器,您可以拥有它以便维护该连接,并且每当移动应用程序与之通信时,它都会向家庭计算机发送消息,因为连接应该是只要家庭用户正在运行该程序,就会活着。