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