Wicketですべてのクライアントにメッセージをプッシュするサーバーを持つWebソケットアプリケーションを作成しました。クライアント(アプリケーション、セッションID、およびキー(PageId))を登録すると、サーバーはメッセージをプッシュします。ここまでは順調ですね。しかし、同じクライアント上に同じブラウザのブラウザウィンドウが複数ある場合、1つのウィンドウだけがメッセージを受信して処理します。Wicket Web Socketsは複数のブラウザウィンドウでは動作しません
(同じブラウザの)すべてのブラウザウィンドウが同じsessionIdを共有していますか?はいの場合、それらの間で異なる方法がありますか?
こんにちは、私は同じ問題を抱えています。提案されたソリューションには1つの問題があります。新しいタブのページがレンダリングされます。新しいWebSocket接続が確立されます(接続レジストリの以前の接続が上書きされます)。その後、新しいタブであることが通知されます。しかし、あなたはすでに前の接続への参照を失ってしまっています。何か案は? –
私は 'onRequestHandlerResolved'をチェックする' RequestCycleListener'を試しました。ハンドラがWebSocket接続が開いている既存のページインスタンスの 'RenderPageRequestHandler'であるかどうかを調べました。そうであれば、新しいページの新しいハンドラに置き換えられます。これはかなりうまくいくが、新しいタブと現在のタブのリフレッシュを区別することはできない。 –