我正在开发两个同位体之间的信令系统,并且注意到RTCPeerConnection.onicecandidate事件未触发。我检查了iceGatheringState,它始终返回“new”,表示对等连接尚未开始搜索ice候选对象。

如何启动从本地计算机收集冰候选对象并发送给对等方?



如果我不想让候选人trick流,一旦聚集后我将如何通过sdp发送他们?

这是我当前的代码,我能够成功获取sdp数据并捕获它们以进行发送,因此检查并检查两个客户端是否已连接是唯一的问题。

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
    }
}

最佳答案

一旦使用createOffer或createAnswer生成的SDP调用setLocalDescription,便开始ICE收集。

如果您不想使用trick流冰,请等待空候选者,然后发送peerConn.localDescription.sdp的内容-然后应包括候选者。

09-27 03:13