WebRTC onicecandidate事件

klo*_*ork 3 javascript video html5 webrtc

我对RTCPeerConnection的onicecandidate事件有以下回调:

function iceCallback(event) {
    if (event.candidate) {
        var candidate = event.candidate;
        socSend("candidate", candidate. event.target.id);
    }
}
Run Code Online (Sandbox Code Playgroud)

我能够从event.candidate中读取候选人.但是当我尝试读取event.target.id时,我得到一个异常,无法读取未定义的属性目标.

"id"是我之前为RTCPeerConnection创建的属性.这适用于多用户视频聊天.

我想弄清楚哪个RTCPeerConnection触发了onicecandidate事件,所以我知道我需要发送icecandidate的客户端.我正在使用adapter.js库.

mid*_*ido 5

我假设您的代码的某些部分如下所示,我刚刚添加了一个简单的修改:

peerConnections ={};

function createNewConncection(id){
    var pc = new RTCPeerConnection();
    pc.onaddstream = ...
    ...

    //pc.onicecandidate = iceCallback;  // OLD CODE
    pc.onicecandidate = iceCallback.bind({pc:pc, id:id});  // NEW CODE
    peerConnections[id] = pc;
}

function iceCallback(event) {
    if (event.candidate) {
        var candidate = event.candidate;
        //socSend("candidate", candidate. event.target.id);     // OLD CODE
        socSend("candidate", this.id);          // NEW CODE
    }
}
Run Code Online (Sandbox Code Playgroud)