2016-07-22 20 views
4

私は2つのピア間でシグナリングシステムを開発しており、RTCPeerConnection.onicecandidateイベントが発生していないことに気付きました。私はiceGatheringStateをチェックしました。そして、それは常にピアリング接続が氷の候補を検索し始めていないことを意味する "新しい"として返します。ピア接続のICE候補を収集する方法

ローカルマシンからアイス候補オブジェクトの収集を開始してピアに送信するにはどうすればよいですか?

私は候補者をトリクル充電したくない場合は、どのように私は一度集まっSDP上にそれらを送ることができるのだろうか?

これは私の現在のコードです。私は正常にsdpデータを取得し、氷のように送信し、2つのクライアントが接続されているかどうかをチェックすることが唯一の問題です。あなたはcreateOfferまたはcreateAnswerで生成されたSDPでsetLocalDescriptionを呼び出した後

var peerConn = new webkitRTCPeerConnection(
    {'iceServers':[{'url':'stun:stun.1.google.com:19302'}]} 
); 
var remoteConn = new webkitRTCPeerConnection(
    {'iceServers':[{'url':'stun:stun.1.google.com:19302'}]} 
); 

alert(peerConn.iceGatheringState); 

///Event Handlers// 
//will be called when each event occurs 

//onicecandidate 
//returns local ice candidates (when gathered) to be sent to peer 
//peerConn.onicecandidate = onicecandidate; 
peerConn.onicecandidate = function(iceEvent){ //not firing 
    if(iceEvent.candidate === null){ 
     alert(peerConn.iceConnectionState); 
     alert(iceEvent.candidate); 

     //send to peer or put in with sdp data 
    } 
} 

答えて

6

ICEの収集が開始されます。

トリクルアイスを使用しない場合は、ヌル候補を待ってからpeerConn.localDescription.sdpの内容を送信します。

+0

したがって、トリクルではないソリューションでは、sdp生成とローカル解読設定の関数は、ヌル候補が受信された後にのみ呼び出され、前に呼び出すと、アイス候補は追加されません。 –

+0

番号。あなたはnull候補の前にSDPを知らせるだけではありません。収集を開始するには、SDPを生成してsetLocalDescriptionを呼び出す必要があります。 [このフィドル]を試してください(https://jsfiddle.net/z7w7kzxc/) –

+1

私はデータチャネルやストリームを開かなかった。それは私の問題かもしれない、私はそれがうまくいくかどうか私が見ることになるフィドルを実装しようとしている。 –

関連する問題