Firebase(複数のウィンドウを開いた状態)でプレゼンスを管理するために、接続ごとにランダムな値を配列にプッシュしてonDisconnectを削除し、その配列がnullかどうかを基本的にチェックするシステムを使用しています。
var ref = new Firebase('https://myfirebase.firebaseIO.com/{user_id}/online')
ref.push(new Date().getTime()).onDisconnect().remove()
それは非常にうまく機能していますが、ネットワーク接続が非常に悪い場合、onDisconnect がトリガーされず、最終的にゴースト オンライン ユーザーが発生することに気付きました。
X分ごとにそのデータをクリーンアップする一種のcrontabを使用することで回避できると考えていましたが、少し汚いようです。
それを改善する方法はありますか?
ありがとう!