Node.js socket用于房间的多个计时器

时间:2016-04-14 17:06:52

标签: node.js sockets timer

哪种解决方案最适合多房间计时器?

在每个房间都会有一个计时器,它将每隔一个房间的每个客户发送实际时间。

但是我觉得这个解决方案风险很大,可能会减慢服务器速度或者杀死它。因为什么时候会有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);

0 个答案:

没有答案