私のアプリケーションは、ユーザーを「オフライン」にするために日付比較に依存しています
これは私のコードです:
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 分以上経過したにもかかわらず、ユーザーが削除されない場合がある理由を見つけることができませんでした。
何が間違っている可能性があり、古いユーザーが常に削除されるようにする方法はありますか?