当我创建一个new RTCPeerConnection()
时,据我所知,我无法用peer.close()销毁它,并且一段时间后,我用光了资源。网页创建大量RTCPeerConnection
时,经过约600次尝试后它将停止工作,并在Chrome中引发以下错误:
未捕获的DOMException:无法构造“ RTCPeerConnection”:无法创建这么多的PeerConnections
这是一个测试脚本,它将帮助您获取错误。仅是说明性的,即使对等体的创建速度慢得多,也会出现该问题:
var i = 1;
function peer() {
var peer = new RTCPeerConnection();
setTimeout(() => {
peer.close();
peer=null;
}, 10);
console.log(i++);
}
setInterval(peer, 20);
// run the script and wait on console to see the error
我希望它在调用peer.close()或至少将peer设置为null时释放所有资源,所以我看不出为什么浏览器会抛出这样的错误:PeerConnections太多。我做错了什么吗?如何正确销毁同伴?谢谢
最佳答案
尝试将peer设置为null,以便收集垃圾。请参见实施限制的人员的these notes。如果这不起作用,请在该邮件列表线程中询问