Почему NodeJS / Socket звонят так много раз? - PullRequest
0 голосов
/ 23 декабря 2018

Моя проблема в том, что когда пользователь заходит на сайт типа / 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() {

Так что я буду запускать все, когда документ будет готов, но я не знаю, почему он вызывает эту функциютак много раз и с таймаутом это работает.

1 Ответ

0 голосов
/ 24 декабря 2018

Это была версия Socket.io!

Установите Socket.io версии 1.7.3, чем она работает!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...