Я делаю модуль с именем rooms.js
для моей игры в socket.io
и canvas
, и я имею функцию синхронизации с клиентом данные пользователей, как объект, но setInterval
не работает на моей функции Rooms.Listener()
клиент только получить данные 4 раз с setInterval
на 1мс, но только один раз с 10мс.
Код:NodeJS не setInterval работает
Listener: function() {
setInterval(function() {
// send data to client every 1ms
Rooms.ListUsers();
}, 1);
},
ListUsers: function() {
for(var roomID in Rooms.Obj) {
var room = Rooms.Obj[roomID];
// send users data to client
room.users.forEach(function(uid) {
var socketID = users.getSocketIDbyId(uid);
var data = Rooms.getUsersInRoomData(roomID);
fiveSocket.emitClient(socketID, headers.roomUsers, data);
});
}
},
getUsersInRoomData: function(roomID) {
var room = Rooms.Obj[roomID];
var obj = {};
room.users.forEach(function(uid) {
var user = users.Obj[uid];
obj[uid] = {
username: user.username,
position: user.position,
figure: user.figure
};
});
return obj;
},
Где проблема? Спасибо
сделал отлаживать его каким-то образом? Где вызывается «Listener»? –
Слушатель вызывается в конце модуля, перед module.export –
Большинство браузеров имеют минимум 4 мс на setInterval(), ваш установлен в 1 мс. Установите его выше минимума, если не по какой-либо другой причине, кроме как исключить его. – Nocturno