基本的に、これは次のように機能します。
ユーザーがアクション(チャットの更新、メッセージの送信、ページへのアクセスなど)を実行するたびに、ユーザーに関連付けられたトークン(サーバーに保存されているトークン、DBなど)が現在の時刻で更新されます。
| User ID | Last action |
-------------------------------------
| 14 (mark) | 2012-02-09-10:34:53 |
| 56 (phil) | 2012-02-09-09:12:34 |
| 9 (john) | 2012-02-09-10:33:11 |
次に、ユーザーがオンラインであると判断します。 彼のトークンが古すぎない場合(5/10分?)
AJAXを使用して、1分程度ごとに定期的なリクエストをサーバーに送信すると、この方法を改善できます。このAJAXリクエストはトークン値を更新します。したがって、このようにして、ユーザーがページを見つめるだけの場合でも、ユーザーがオンラインであることがわかります。そして、彼が終了すると(ブラウザまたはタブを閉じる)、AJAXの定期的な呼び出しが機能しなくなるため、5/10分後にユーザーはオフラインと宣言されます。 。
頑張ってください!