我使用了code,解释here来创建webrtc数据通道连接,而不使用任何花哨的库。 Websockets用于信令。
现在,当我在我的服务器上运行具有全局IP的节点应用程序时,我可以通过websockets连接两个浏览器实例。然后,两个浏览器都可以通过数据通道进行连接。
现在,我使用手机浏览器(最新的Chrome浏览器)替换了一个浏览器实例并尝试了相同的操作。可悲的是,没有任何联系。当我通过手机使用两个2浏览器实例时,每个实例都可以正常工作。
所以,如果两个浏览器不在同一台机器上,或者 NAT遍历不适用于移动互联网的移动电话,那么信号可能有问题,这是我怀疑的,但我不确定。
有人可以确定移动互联网设备理论上能够进行NAT遍历吗? (我不知道,移动提供商如何设置他们的网络拓扑结构)
答案 0 :(得分:1)
通过移动网络连接的设备肯定能够穿越NAT,但它更加棘手,不太可能成功。
当普通STUN不足以进行打孔时,你应该考虑使用TURN服务器作为后备。
我发现以下资源有助于此目的:
正在生产中运行的任何服务需要 TURN服务器,否则对于用户来说它将是不可靠和不稳定的。除非您的应用程序不需要两个用户之间的精确点对点连接。例如WebTorrent就是这样一个项目,你只需要能够连接到某些对等体,而不是特定的对等体,以便它可以工作。