チャットを含むアプリケーションがあります。Node.JSのIOソケットを使用して、クライアントにプッシュします。クライアントは、認証されると、自分のIDを部屋の識別子として部屋に接続しています。クライアントのセッションとは関係なく、クライアントに通知をプッシュするシングルトンがいくつかあるため、これを行いました。チャットの春のBeanはSessionScopedです。私たちが直面している問題は、同じクライアントが2つの異なるブラウザを使用してシステムにログインしたときに発生します。2つのセッションが作成されるため、チャットの2つのSpringBeanが動作します。両方のBeanがユーザーIDで識別される部屋にプッシュするため、クライアント側では、同じメッセージが2回到着します。重複するメッセージの数は、ブラウザの数とともに増加します。
そこで、Springのカスタムスコープを作成したいと思います。このスコープは、同じログインでログインしているすべてのクライアント間で共有する必要があり、このログインでログインしているすべてのセッションが破棄されるとすぐに破棄する必要があります。
このスコープには、ログインごとにすべてのセッションを含むマップが必要であり、これらのセッションの破棄をリッスンする必要があると思います。誰かがこれを手伝ってくれますか?