2

我使用了这段代码这里解释了它来创建一个 webrtc 数据通道连接,而不使用任何花哨的库。Websockets 用于发送信号。

现在,当我在具有全局 IP 的服务器上运行节点应用程序时,我可以通过 websockets 连接两个浏览器实例。然后,两个浏览器都可以通过数据通道进行连接。

现在我用我的手机浏览器(最新的 chrome 浏览器)替换了一个浏览器实例并尝试了相同的方法。可悲的是,没有建立任何联系。当我通过手机使用两个 2 浏览器实例时,每个都可以正常工作。

所以,可能是信号有问题,如果两个浏览器不在同一台机器上,或者NAT 穿越不适用于移动互联网的手机,这是我怀疑的,但我不确定。

有人可以肯定地说移动互联网设备理论上能够进行 NAT 穿越吗?(我不知道,移动提供商如何设置他们的网络拓扑)

4

1 回答 1

1

通过移动网络连接的设备肯定能够穿越 NAT,但这要复杂得多,而且不太可能成功。

当普通 STUN 不足以打孔时,您应该考虑使用 TURN 服务器作为后备。

我发现以下资源对此很有帮助:

任何在生产环境中运行的服务都需要一个 TURN 服务器,否则它对用户来说将是不可靠且不稳定的。除非您的应用程序不需要两个用户之间的精确点对点连接。例如, WebTorrent就是这样一个项目,您只需要能够连接到一些对等点,而不是特定的对等点,它就可以工作。

于 2015-01-22T01:04:09.837 回答