WebRTC配置的机制是什么?

时间:2017-08-02 16:12:57

标签: javascript websocket socket.io webrtc peerjs

我正在尝试构建视频聊天但无法理解某些代码: 我找到了来自WEBRTC Sample的代码部分 链路: - https://github.com/webrtc/samples/commit/ecca1124803688bf512874188624f6d4538f69d0

  var servers = null;
  pc1 = new RTCPeerConnection(servers);
  trace('Created local peer connection object pc1');
  pc1.onicecandidate = function(e) {
    onIceCandidate(pc1, e);
  };
  pc2 = new RTCPeerConnection(servers);
  trace('Created remote peer connection object pc2');
  pc2.onicecandidate = function(e) {
    onIceCandidate(pc2, e);
  };
  pc1.oniceconnectionstatechange = function(e) {
    onIceStateChange(pc1, e);
  };
  pc2.oniceconnectionstatechange = function(e) {
    onIceStateChange(pc2, e);
  };
  pc2.ontrack = gotRemoteStream;

当我将null值传递给RTCPeerConnection()时会发生什么?

1 个答案:

答案 0 :(得分:1)

构造函数RTCPeerConnection接受配置对象。除此之外,大多数应用程序所需的配置之一是iceServers

iceServers是STUN或TURN服务器的列表。例如,您的构造函数可能如下所示:

  var configuration = { 
     "iceServers": [{ "urls": ["stun:stun.1.google.com:19302"] }] 
  }; 

  myConnection = new RTCPeerConnection(configuration); 

简单来说,这些STUN和TURN服务器帮助两个对等体发现彼此的直接路径。但是,当您省略服务器时,这意味着应用程序将只能在Intranet内发现对等体,或者基本上在计算机可以直接与之交互的设备集中。 [引证需要]

在任何制作应用中,您很可能必须添加STUN和TURN服务器。但由于您指的是来自codetutorial,因此不需要跨互联网连接,您可以跳过服务器。