2017-08-02 6 views
-1

私はビデオチャットを構築しようとしているが、コードのいくつかの作品を理解することができません: 私はのWebRTCのサンプル リンクからコードの一部を発見した: - https://github.com/webrtc/samples/commit/ecca1124803688bf512874188624f6d4538f69d0WebRTC設定のメカニズムは何ですか?

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

コンストラクタRTCPeerConnectionはコンフィギュレーションオブジェクトを受け入れます。とりわけ、ほとんどのアプリで必要とされる設定の1つはiceServersです。

iceServersは、STUNまたはTURNサーバのリストです。たとえば、あなたのコンストラクタは次のようになります。簡単な言葉では

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

    myConnection = new RTCPeerConnection(configuration); 

これらのSTUNとTURNサーバーは、2つのピアがお互いへの直接パスを発見するのに役立ちます。しかし、サーバーを省略すると、イントラネット内、または基本的にコンピュータが直接通信できるデバイスのセット内でのみ、ピアがピアを検出できるようになります。

いずれのプロダクションアプリでも、STUNとTURNサーバを追加する必要があります。しかし、tutorialcodeを参照しているため、インターネット経由での接続は必要ありません。サーバーをスキップできます。

+0

ありがとうございました。私はwebrtcからコードサンプルを入手しましたが、実際に何をしようとしているのですか? https://github.com/webrtc/samples/commit/ecca1124803688bf512874188624f6d4538f69d0 –

+0

うん、答えを書いている間にその例が見つかりました。この例では、 'null'部分は、同じブラウザタブ内で自分のウェブカメラのストリームをあなた自身に共有しているためです。私はSTUN/TURNサーバが設定されていないイントラネット内で動作できるwebRTCの経験があります。 – Nisarg

+0

だから私はどのように私は任意のチュートリアルのアプリでこれを実装する必要があることを教えていただけますか?コードサンプルもChromeでもう動作しません(httpsの問題)。ありがとう........ –

関連する問題