NodeJS setInterval不起作用

时间:2016-01-19 19:19:49

标签: javascript node.js

我在rooms.jssocket.io为我的游戏制作了一个名为canvas的模块,我有一个函数可以将客户数据作为对象与客户端同步,但是setInterval无法处理我的功能Rooms.Listener(),客户端仅在 1ms 时获得{strong> 4次数据setInterval,但只有一次 10ms

代码:

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;
},

问题出在哪里?感谢

1 个答案:

答案 0 :(得分:0)

分别仔细检查您的方法。代码本身应该有效,问题可能在你的内部方法中。



var Rooms = {
  Listener: function() {
    setInterval(function() {        
      Rooms.ListUsers();
    }, 1000); // change to 1ms if necessary
  },

  ListUsers : function() {   
    document.body.innerHTML += Date.now() + "<br />";
  }
};

Rooms.Listener();
&#13;
&#13;
&#13;