WebRTC - 数据通道 - 适用于移动互联网

WebRTC - DataChannel - Suitable for mobile internet?

本文关键字:移动互联网 适用于 数据通道 WebRTC      更新时间:2023-09-26

我使用了这段代码,这里解释了在不使用任何花哨的库的情况下创建一个webrtc数据通道连接。网络套接字用于信令。

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

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

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

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

通过移动网络连接的设备肯定能够遍历 NAT,但它要棘手得多,成功的可能性也更小。

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

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

  • https://blog.andyet.com/2015/01/14/turn-for-webrtc(提到一些模块,让你运行自己的TURN服务器,困难)
  • https://www.twilio.com/stun-turn(让您付费购买TURN使用,简单)

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