1

私はかなり長い間JavaSEを使用していますが、約1か月前にJavaを使用してEEとWebを開始したので、質問が少しお粗末に思える場合はご容赦ください...

状況は次のとおりです。リアルタイムのインタラクションを備えたJSベースのマルチプレイヤーゲームを作成しようとしています(この例ではチェスとしましょう。ただし、特定のゲームが何であるかは問題ではありませんが、テニスでもw/でもかまいません。これまで)。クライアントはJS呼び出し、移動の送信などを介してサーバーと対話します。これで、一方のクライアントから移動を受信して​​他のプレーヤーに直接渡すことができましたが、サーバーでゲームの状態を維持しないということは、 「ユーザーJSスクリプトを歓迎します」と言って巨大なサインアウト(そしてそれは経験からです-私自身その種のがらくたを「ハッキング」しました)。これは私の問題につながります-複数のセッション間でステートフルオブジェクトを共有するにはどうすればよいですか?頭に浮かんだアイデアの1つは、ステートフルBeanのハッシュマップを格納するシングルトンでした。そうすれば、各セッションはそのハッシュによってBeanを取得できますが、それがどれほど正しいかはわかりません(そして、そのようなかなり一般的なことではかなり複雑に思えます)。それをアプリケーションスコープに結び付けるのもやり過ぎのようです...

PSオブジェクトには同時実行管理などが必要になることは理解していますが、共有する方法に指を置くことができないようです...

編集:申し訳ありませんが、以前は言及していませんでした-Glassfish、EE6を使用しています。

4

2 に答える 2

0

Seamフレームワークのドキュメントに従って次のように定義されたビジネスプロセスシナリオがあります。

ビジネスプロセスは複数のユーザーとの複数の対話にまたがるため、この状態は複数のユーザー間で共有されますが、明確に定義された方法で行われます。現在のタスクは現在のビジネスプロセスインスタンスを決定し、ビジネスプロセスのライフサイクルはプロセス定義言語を使用して外部で定義されるため、ビジネスプロセスの境界に特別な注釈はありません。

ここでは、Seamビジネスプロセス管理チュートリアルを見ることができます

Seamは舞台裏でJBossBPMを使用して、ビジネスプロセスコンテキストを処理していることに注意してください。プレーンなJBossBPM機能を使用したいだけの場合は、JBossと統合する方法をここで確認できます。

JBossBPMユーザーガイドも参照してください

于 2010-09-22T03:25:27.740 に答える
-1

解決しました。FacesServletは別のコンテナであるため、最初は機能しないと思っていたServletContextを介して共有しました。これは、別のコンテナのようにsmthnを持っていると考えていました。

于 2010-09-24T11:43:18.330 に答える