誰かが私の問題に答えてくれることを願っています。gwt-webapp では、通常 HttpSession を使用してユーザー セッションを作成します。したがって、誰かがゲームにログインしたい場合は、HttpSession を介してセッションを設定します。
public void setSessionID(String id) {HttpSession httpSession = getThreadLocalRequest().getSession(true); httpSession.setAttribute("id", id); }
ビューの順序は次のとおりです: LoginView -> HomeView -> LobbyView
ロビーに入ると、websocket 接続を介してチャットに接続されます。問題は、websocketConnection が sessionObject も作成することです。突堤 v-8.1.2.v20120308 でアプリをテストすると、次のようになります。
最初のユーザーがゲームにログインし、チャット機能を使用して直接ロビーに参加し、別のユーザーが同じ方法でロビーに参加すると、お互いにチャットできるので、すべて問題ないように見えます...
しかし、誰かがロビーに参加する前に 2 人のユーザーが同時にゲームにログインし、その後ロビーに参加した場合、ロビーに入った 2 番目のユーザーは、最初に入ったユーザーのすべてのパラメーターを取得するため、両方のユーザーが存在します。同じIDを持つユーザー...何が問題なのかわかりません。最初のユーザーの websocketSession が 2 番目のプレーヤーのログインからの httpSession をオーバーライドしているようです...これが問題になる可能性のある解決策やアイデアに感謝します。