WebRTC TURN服务器 - 我进行了设置,但它无法正常工作

时间:2014-07-10 00:51:58

标签: webrtc peerjs

我使用WebRTC数据通道的PeerJS实现设置了文本聊天服务。 PeerJS为此提供了一个基本的信令服务器,但我试图用通过XirSys设置的STUN和TURN服务器(由SimpleWebRTC推荐,另一个WebRTC库)替换它。我还没有部署到网上。

使用Node在本地提供我的静态文件,它可以在本地网络上工作(当我坐在人的旁边,他们导航到浏览器中的我的IP /端口),但在通过不同的访问连接时不起作用点在同一个网络上(即在工作中,在建筑物的两端)。

我的假设是,它正在攻击防火墙,但仍然将流量引导到PeerJS的信令服务器,而不会回到我试图设置的XirSys STUN和TURN服务器。这是我正在使用的代码:

var stun = {};
var turn1 = {};
var turn2 = {}; 
  $.ajax({
    type: "POST",
    dataType: "json",
    url: "https://api.xirsys.com/getIceServers",
    data: {
        ident: "myusername",
        secret: "long-alphanumeric-secret-key",
        domain: "www.adomain.com",
        application: "anapp",
        room: "aroom",
        secure: 1
    },
    success: function (data, status) {
        console.log(data);
        stun = data.d.iceServers[0];
        turn1 = data.d.iceServers[1];
        turn2 = data.d.iceServers[2];
    },
    async: false
});

var conn;
  // Connect to PeerJS, have server assign an ID instead of providing one
  var peerID = prompt('What would you like your screen name to be?');
  var peer = new Peer(
    peerID, 
    {key: 'mypeerjsserverkey', debug: true}, 
    {
    config: {'iceServers': [
        {url: stun.url},
        {url: turn1.url, credential: turn1.credential, username: turn1.username},
        {url: turn2.url, credential: turn2.credential, username: turn2.username}
      ]
    }
  });

注意:我的身份,秘密,域名等显然未在此处准确表示。我认为这不是我的问题所在。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

如果您通过电子邮件向我们发送STUN / TURN流量的wirehark捕获信息,我们应该能够概述您的问题所在。通过信令发送的消息是独立的,但与WebRTC消息并行。因此,如果应用程序正在运行,但邮件是通过信令发送的,那么应用程序的配置可能无法正确。

XirSys通过端口80/443通过UDP提供TURN,所以如果信令连接和流动,TURN也是如此。

另外,看一下你的代码,如果你将data.d从你的getIceServers成功处理程序传递给PeerJS配置,这应该会减少你的代码:-)你重建的ICE字符串不会#n;'需要分解。

此致 背风处 XirSys首席技术官