我的应用程序依靠日期比较来使用户“离线”
这是我的代码:
setInterval(function () {
for (var s in _client) {
if (_client.hasOwnProperty(s)) {
var obj = _client[s];
var lastVisit = new Date(_client[s].lastActive); // for example: 2013-10-8 9:52:24
var thirtySecs = 31000;
var now = new Date();
var thirtySecsAgo = new Date(now - thirtySecs);
if (lastVisit < thirtySecsAgo) {
// Should now remove user
// This does not always work for some reason
}
}
}
}, 15000)
逻辑是它应该检查每个活动客户端的 lastActive 属性(由心跳更新)。但有时if
不会触发,因此不会删除用户。
我一直无法找到为什么有时用户没有被删除,即使已经过去了 30 多分钟。
有什么想法可能出错以及我如何确保始终删除旧用户?