2

symfony の特定のユーザーがアプリケーションにログインしているかどうかを知る必要があります。現在ログインしているユーザーのセッション ID を取得する方法はありますか?

is_online名前付きのフィールドがあり、ユーザーがアプリケーションにログインおよびログアウトするときにそれを設定したときにテーブルを試してみたので、ユーザーがブラウザを閉じたときまたはセッションが終了したときに問題が発生するため、フィールドis_onlineはtrueのままです。これが、ユーザーがアプリケーションにログオンしているかどうかを取得する別の方法が必要な理由です。

どんなアドバイスも役に立ちます。

4

2 に答える 2

4

ユーザーから ajax リクエストを送信できます。誰かがたとえば 1 分間リクエストを送信しないとすぐに、ステータスをオフラインに変更します。MemCache などのキー値ストレージにステータスを保存することをお勧めします。詳細はこちらをご覧ください

于 2012-05-24T14:49:23.250 に答える
1

毎分同じセッションでサービスを呼び出す ajaxのようなデータベース フィールドlastonlinetstampとメソッドを作成します。ping次に、ping サービスにlastonlinetstamp. この値が 1 分より古い場合、ユーザーがオフラインであることがわかります。ただし: これにより、サーバーへのリクエスト数が増加します。

于 2012-05-24T15:32:03.010 に答える