WebRTC 一个候选事件

WebRTC onicecandidate event

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

function iceCallback(event) {
    if (event.candidate) {
        var candidate = event.candidate;
        socSend("candidate", candidate. event.target.id);
    }
}

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

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

我试图找出哪个 RTCPeerConnection 触发了 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
    }
}