我在rooms.js
和socket.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;
},
问题出在哪里?感谢
答案 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;