首页 > 解决方案 > 为什么 NodeJS/Socket 调用这么多次

问题描述

我的问题是当用户访问像 /top 这样的网站时,我想获得顶级用户。

if(window.location.href.indexOf("/top") > -1) {
    app.website.socket.emit('loadTopDailyCases');
}

我发射loadTopDailyCases回来TopCases。但是出于任何原因,他调用了很多次,加载时间有时加载非常非常长,我在日志中看到他尝试加载很多次......

那是服务器端。他回馈TopCases(一个数组)

socket.on('loadTopDailyCases', function() {
    socket.emit('topdailycases', TopCases);
});

但是那会调用很多次,但我不知道为什么。

如果我用超时调用第一个发射,系统只调用一次并且很快就完成了。但为什么只有超时?

if(window.location.href.indexOf("/top") > -1) {
    setTimeout(function() { app.website.socket.emit('loadTopDailyCases'); }, 500); 
}

就这样它调用一次就完成了。但我不明白为什么。

在每个 jQuery 函数之外是

$(document).ready(function() {

所以我想当文档准备好时一切都会运行,但我不知道他为什么这么多次调用该函数并且超时它可以工作。

标签: javascriptnode.jssockets

解决方案


这是 Socket.io 版本!

安装 Socket.io 版本 1.7.3 就可以了!


推荐阅读