【问题标题】:ProjectRTC/webRTC with 3G/4G Networks具有 3G/4G 网络的 ProjectRTC/webRTC
【发布时间】:2016-05-05 05:56:52
【问题描述】:

我正在使用ProjectRTC,并成功地使用 Firefox 和 android 客户端对其进行了测试。我将服务器代码放在远程服务器(digitalocean)上,通过我的家用电脑访问。

但是,在我使用家庭 ADSL 或(速度较慢的)ADSL (速度较慢的)ADSL(用于带有 Firefox 的 pc)和用于 Android 客户端的 3G/4G 网络之前,一切正常。

如果我通过手机为我的电脑使用 3G/4G 网络(使用热点选项),它会尝试连接到客户端,但我收到错误消息 JavaScript 控制台上的“Ice Failed”。

我尝试添加一个 TURN 客户端

public/javascripts/rtcClient.js

添加这个:

var localId,
config = {
  peerConnectionConfig: {
    iceServers: [

      /*test*/
      {
        "username":"e7db750a-2fcc-40c6-8415-cab22743a68a",
        "url": "turn:turn1.xirsys.com:443?transport=tcp",
        "credential":"287ae254-9380-4f81-af88-e1cc9ed27eb0"
      },

      {
        "username":"e7db750a-2fcc-40c6-8415-cab22743a68a",
        "url": "turn:turn1.xirsys.com:443?transport=udp",
        "credential":"287ae254-9380-4f81-af88-e1cc9ed27eb0"
      },
      /*end test*/

      {
      "url": "stun:stun.l.google.com:19305"
      }
  ]
  },
  peerConnectionConstraints: {
    optional: [{
      "DtlsSrtpKeyAgreement": true,
    }]
  }
},

peerDatabase = {},
localStream,
remoteVideoContainer = document.getElementById('remoteVideosContainer'),
socket = io();

socket.on('message', handleMessage);
socket.on('id', function(id) {
localId = id;
});

但我仍然没有运气,再次获得“ICE失败”。

我也尝试阅读this,但我认为这不是我要寻找的。 你有什么想法让它与移动连接一起工作吗?

提前感谢您的关注!

【问题讨论】:

  • 我有同样的问题。你能解决这个问题吗?

标签: javascript 3g rtc 4g


【解决方案1】:

不要对 ICE 字符串进行硬编码。 XirSys ICE 字符串对时间敏感,将在 30 秒后过期。您需要为每个连接请求一个新的 ICE 字符串。这可能会解决您的问题,也可能不会,但至少可以排除 ICE 字符串的问题。

问候, 李

【讨论】:

  • 谢谢,我刚刚按照这个教程:xirsys.com/guide 说:这个令牌只能在安全的环境中实现,例如服务器端应用程序或编译的客户端应用程序。不这样做将导致不受欢迎的用户劫持您的 TURN 带宽和其他安全漏洞。但是,为了简单起见,我们将只打破该规则一次,并通过 jQuery POST 请求从客户端发起 WebRTC 连接。所以这个想法是在它起作用的时候把事情整理好!但是,我尝试了但没有运气=(
猜你喜欢
  • 1970-01-01
  • 2023-03-17
  • 2017-04-19
  • 2023-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多