Друзья, привет. Столкнулся с такой проблемой, что сокеты отправляют функция несколько раз в одно и то же время.
Нужно сделать так, чтобы она отправлялась 1 раз в 3 секунды. Может проблема в setTimeout? ( Функция usersCount() )
Пример кода:
io.sockets.on('connection', function(socket){
console.log('connect');
setTimeout(usersCount, 3000);
});
/* Доступ к статистике */
function usersCount() {
connection.query('SELECT COUNT(*) FROM `users`', function(err, rows) {
users = rows['0']['COUNT(*)'];
});
https_server.getConnections(function (err, count) {
online = count;
});
connection.query('SELECT COUNT(*) FROM `drops`', function(err, rows) {
drops_count = rows['0']['COUNT(*)'];
});
var json = {
users: users,
online: online,
drops: drops_count
};
socket.emit('stats',json); // отправим в сокеты
setTimeout(usersCount, 5*3000);
}