WebRTC设置和相关查询

时间:2013-09-25 11:40:24

标签: webrtc

我正在尝试为WebRTC应用程序设置对等连接。我已经阅读了论坛和讨论组,这些我认为STUN / TURN服务器是必需的。以下是详细信息:

  1. 我从https://code.google.com/p/rfc5766-turn-server/
  2. 下载了STUN / TURN服务器的开源实现
  3. 在我的本地Mac OS X计算机上安装服务器,并在localhost:3478
  4. 上打开服务器
  5. 当我使用客户端脚本测试服务器时,我能够从服务器返回远程地址。
  6. 但是,当我尝试在创建对等连接时从我的JavaScript代码中命中服务器时,它并没有触及服务器本身。
  7. 以下是我正在使用的代码:

    function createPeerConnection() {
         var pc_config = {'iceServers': [{'url':'turn:127.0.0.1:3478', 'credential':'Apple123'}]};
           try {
            // Create an RTCPeerConnection via the polyfill (adapter.js).
            pc = new webkitRTCPeerConnection(pc_config);
            pc.onicecandidate = gotLocalCandidate;
            trace("Created RTCPeerConnnection with config:\n" + "  \"" +JSON.stringify(pc_config) + "\".");
          } catch (e) {
            trace("Failed to create PeerConnection, exception: " + e.message);
            alert("Cannot create RTCPeerConnection object; WebRTC is not supported by this browser.");
              return;
          }
    
          pc.onconnecting = onSessionConnecting;
          pc.onopen = onSessionOpened;
          pc.onaddstream = onRemoteStreamAdded;
          pc.onremovestream = onRemoteStreamRemoved;        
    }
    

    感谢此事的任何指导,因为我完全陷入困境。 还有一个问题:如何在内部网络上同时存在对等体A和B的WebRTC应用程序中建立对等连接?那么是否需要STUN / TURN服务器?

1 个答案:

答案 0 :(得分:0)

首先,TURN服务器只有在未能直接设置p2p连接时才会使用。大约86%的呼叫可以在没有通过TURN服务器中继的情况下进行(根据this幻灯片,我推荐这样做以便更好地理解TURN(来自幻灯片44))。

TURN服务器应该在您的网络之外,因为它的目的是在不可能以其他方式这样做时中继流。

我建议你从A和B都在同一网络上的情况开始。然后你不必担心使用STUN / TURN。这太复杂了。