2016-07-22 2 views
4

두 피어간에 신호 시스템을 개발 중이며 RTCPeerConnection.onicecandidate 이벤트가 발생하지 않는 것으로 나타났습니다. iceGatheringState를 확인한 결과 피어 연결이 얼음 후보를 찾기 시작하지 않았다는 것을 항상 "새로운"것으로 반환합니다.피어 연결을위한 ICE 응시자를 시작하는 방법

로컬 컴퓨터에서 얼음 후보 물체를 수집하여 피어로 전송하려면 어떻게해야합니까?

내가 후보 세류하지 않으려면

, 어떻게 한 번 모여 SDP를 통해 보낼 수 있습니까?

이것은 현재 코드입니다. sdp 데이터를 성공적으로 획득하고 얼음을 보내고 두 클라이언트가 연결되어 있는지 확인하는 것이 유일한 문제입니다. 당신은 당신이 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

번. 널 후보가되기 전에 SDP 신호 만 보내면 안됩니다. 수집을 시작하려면 SDP를 생성하고 setLocalDescription을 호출해야합니다. [이 바이올린] 시도 (https://jsfiddle.net/z7w7kzxc/) –

+1

데이터 채널이나 스트림을 열지 않았습니다. 그게 내 문제일지도 몰라, 나는 그것이 효과가 있는지 볼 수있는 바이올린을 구현하려고 노력 중이다. –