は、これらの操作を行い、あなたは5部屋の中の人(と1つ以上がアクティブになるようにバインドされている)を持っていると仮定します。ユーザーが取るすべてのアクションのための
(それはキーストロークまたは送信する実際のメッセージで)、サーバーに「ping」して(存在するというメッセージを送信して)、イベントが発生した時刻をデータベースに記録します。 (「...ユーザー入力された」Facebookはがしていることをどのようにに気づく - 。これはそれで順番に
をアヤックス私が思う)を経由して(そのアクションを送信するため、サーバーの応答は、ユーザのリストでは、 (現在の時間 - 最後のアクティブな時間=離れた時間)
誰がオンラインであるかを知っていない、再構築するあなたのブラウザの "chat mate list"
あなたは多数の可能性がありますities。 「5分を許可する」などのように、そのユーザーはアイドル状態です。 15分以上の時間差がある場合は、その人をオフにしてください。
また、定期的にオンラインになっているユーザーの更新をサーバーにpingすることもできます。キーストロークやメッセージの送信ではなく、ハートビートと呼ばれることもあります。同じ手順を実行します。あなたがオンラインになっていることをサーバーに伝え、存在を記録し、チャット相手のリストを返させます。
このアプリケーション(ブラウザチャット)では、オフラインであることをサーバーが認識していないため、ブラウザーを閉じてしまうなど、「ハートビート」とアクションを定期的に記録する必要はありません。
ホストについては、ホストIDでその部屋にタグを付ける必要があります。ハートビートは彼がまだオンラインであるかどうかを教えてくれます。
私はテーブルを作成し、ホストのアクションを送信し、そのユーザーのIDが特定の時間間隔内に何らかのアクティビティを持っているかどうかを確認する必要があります。 – Ciprian
codeigniterでは、各コントローラアクションの前に[フィルタ](http://codeigniter.com/wiki/Filters_system)を使用して、ユーザーがログインしているかどうかを確認し、トークンがある場合は更新することができます。 @ciprian正確には – Flukey
です。すでにユーザーのためのテーブルがある場合は、そのテーブルに新しい列を追加することもできます。あなたの選択: –