Javascript WebRTC onicecandidate事件

Javascript WebRTC onicecandidate事件,javascript,html,video,webrtc,Javascript,Html,Video,Webrtc,我对RTPeerConnection的onicecandidate事件有以下回调: function iceCallback(event) { if (event.candidate) { var candidate = event.candidate; socSend("candidate", candidate. event.target.id); } } 我能够从事件中读取候选人。候选人。但是当我尝试读取event.target.id时,我

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

function iceCallback(event) {
    if (event.candidate) {
        var candidate = event.candidate;
        socSend("candidate", candidate. event.target.id);
    }
}
我能够从事件中读取候选人。候选人。但是当我尝试读取event.target.id时,我得到一个异常,无法读取未定义的属性target

“id”是我以前为RTPeerConnection创建的属性。这是一个多用户视频聊天


我正在尝试找出哪个RTPeerConnection触发了onicecandidate事件,以便知道需要将icecandidate发送到哪个客户端。我正在使用adapter.js库。

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

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

谢谢你的意见。你能解释一下iceCallback.bind({pc:pc,id:id})的变化吗;假设onicecandidate事件签名不接受任何参数?通过
bind
我们指定被调用函数的
this
值,在这种情况下,因为我们无法更改或添加参数到
onicecandidate
,所以我刚刚将所需信息作为
this
绑定到
iceCallback
,束缚