nodejs
とsocket.io
を使用してチャット機能を持つPHPアプリケーションがあります。 私が今必要とするのは、ユーザーが15分以上休眠している場合にユーザーをログアウトすることです。Socket.ioクライアントからのハートビートを除いて非アクティブであることを確認します。
セッションは、PHPアプリケーションとNodejs
サーバで共有されます。したがって、nodejs
サーバは、ユーザが最後にログインしたときまたは最後のアクティビティがいつだったかを知る。
私はlogoff
コマンドをsocket.ioクライアントに送信することを考えています。クライアントからのハートビートとメッセージを区別できるのは本当に簡単です。
PHPアプリケーションは、ページのリロードやナビゲーションでユーザーのアクティビティのみを知っているため、休止状態の間はチャットしている可能性があり、PHPアプリケーションはユーザーがチャットしているかどうかを知ることができません。したがって、セッションの最後のアクティビティを確認することはできません。
ここでの主な質問は、15分以上(送信しない)ハートビートのみを送信しているクライアントを特定できますか?
チャットのアクティビティに基づいてセッションを更新することはできません。次のハートビートで15分のアクティビティがない場合は、ログアウトしますか? – mekwall