哪种解决方案最适合多房间计时器?
在每个房间都会有一个计时器,它将每隔一个房间的每个客户发送实际时间。
但是我觉得这个解决方案风险很大,可能会减慢服务器速度或者杀死它。因为什么时候会有500个客户端,所以它会发送第二个500个数据包并且数量巨大。
是否有异步计时器?
这是我的代码:
setInterval(function() {
var rooms = io.sockets.adapter.rooms;
if (rooms) {
for (var roomKey in rooms) {
var room = io.sockets.adapter.rooms[roomKey];
if (typeof room.time !== 'undefined') {
if (room.time <= 0) {
room.time = 60;
// emit time up
} else {
room.time--;
// emit time
}
console.log(room);
}
}
}
}, 1000);