好的,这是一个令人困惑的谜团,幸运的是它已经解决了,我会试着给你一个例子,这样任何读过这篇文章的人都可以理解到底发生了什么。
假设您已经构建了自己的程序,该程序可以计算单个文件夹中的文件,并且您命令该程序计算文件夹 C:\Files 中的文件
该文件夹路径包含 500 个文件。该程序最多需要 1 小时来读取 500 个文件,这是他的最大能力,所以你给他命令并按 Enter 键。
一小时后,你回来你看到程序是(死机),你调查什么问题?然后你会发现,由于他每小时读取500个文件的最大能力和有500个文件的文件夹,他不可能出错,但出现错误是因为有人不断在这个文件夹上扔文件,就像无限循环一样,它的就像他需要 1 秒钟来读取一个文件,并且在同一秒钟内,还有 5 个文件以累积的方式出现,他开始计数,同时新文件被累积计数。
这正是您的情况所发生的事情,chrome 浏览器在一秒钟内关闭了对等连接,而在这一秒内,您向他扔了 3-4 个新的对等连接,这使得 chrome 浏览器在控制台上标记错误之后,因为控制台后台的计算表明这是无穷大的,它迟早会显示堆栈错误。其中一部分是您通过使用这些值设置间隔时间来淹没浏览器缓存。
我一直在追踪这将近三个小时,这就是我最终得到的结果。我将很快编辑这篇文章并添加有关如何解决它的解决方案。
好的,我刚刚完成了代码的调整,下面是我运行 snip 代码的结果,如果您在 chrome 控制台注释上看到错误,请告诉我:您可以删除 sip java-script,我用它来跟踪您的错误。
希望我的帖子将来对某人有所帮助。
祝你好运
<script src="http://sipjs.com/download/sip-0.7.2.min.js"></script>
<meta http-equiv="Expires" content="0">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-control" content="no-cache">
<meta http-equiv="Cache" content="no-cache">
<script>
var i = 1;
function peer() {
var peer = new RTCPeerConnection();
peer.mediaHandler = null;
peer.onicecandidate = null;
peer.onaddstream = null;
peer.close(i);
setTimeout(() => {
console.log('Ending Call');
}, 3500);
console.log(i++);
}
setInterval(peer, 500);
hangUp = () => {
let { peer} = this.state;
peer.close();
this.setState({
peer: null,
});
};
</script>