Jqueryはユーザーセッションを追跡する方法をチャットします

私たちは内部コミュニケーションのためにJQueryのチャットを私たちの会社で実装しました。それは正常に動作しています。私たちはデータベースにユーザー状態を保存しています。ログインしたユーザーがログアウト時に状態をログアウトしたときに、DBに状態を保存します。

問題は、ユーザーがログアウトしたボタンをクリックせずにウィンドウを閉じるかPCをシャットダウンしても、チャットシステムにはログインしているということです。

各ユーザーがログインしているかどうか、たぶんユーザーセッションを追跡して追跡する方法は?

0
15分の非活動を持つユーザーのdbセッションを削除するphp関数を使用する必要があります。したがって、オンラインになった人は誰でもログアウトしてログアウトします。この方法では、1人のユーザーのみがログインし、最後のアクティビティの16分後にチャットし、ログインを開始します
追加された 著者 Val,

2 答え

私がこれを達成するために考えている最良の方法(しかし、最も安全ではないか、または最も堅牢ではない)は、クッキーによるものです。 まず、server/jqueryスクリプトは、ユーザがログインしたときにブラウザセッションが終了したときに削除されるクッキーをコンピュータに置きます。その後、ログアウトしたら、クッキーを削除します。したがって、ユーザーがログインしているかどうかを確認する場合は、Cookieを探します。

2
追加された

CRON を使用する解決策があります:

ユーザがサーバに伝える小さな「ping」メッセージをサーバに送り、そのユーザはまだログインしていて、アクティブであり、ブラウザが開いている。すべてのpingで、ユーザの last_activity の時間を現在のものに更新します。

last_activity の時間が30秒を超えない場合は、 CRON を使用してすべてのユーザーを確認できます。存在する場合は、ログオフした状態を設定します。

そのための簡単なSQLクエリ:

UPDATE users
   SET logged_in = false
 WHERE logged_in = true
   AND UNIX_TIMESTAMP() - last_activity > 30
0
追加された
PHP - 日本のコミュニティ [ja]
PHP - 日本のコミュニティ [ja]
4 参加者の

このグループではPHPについて話します。 パートナー:kotaeta.com