2010-09-22 60 views
1

即使我已經在Java SE相當長的一段時間了,我開始EE &如果這個問題似乎是捲紙W/Java的只有大約一個月前,所以原諒有點notobish ...的Java EE - 使用相同的狀態的對象爲多個用戶

所以這裏的情況:我試圖寫一個基於JS的多玩家遊戲與實時交互(讓我們說在這個例子中的國際象棋,雖然它並不重要什麼特定遊戲是,可以是網球或永遠)。客戶端將通過JS調用與服務器交互,發送移動等。現在,雖然我可以從一個客戶端移動&直接將其傳遞給其他玩家,但不保持服務器上的遊戲狀態意味着將一個巨大的簽名聲稱「用戶JS腳本受到歡迎」(這是經驗之談 - 「黑客攻擊」了這種類型的垃圾)。這帶來了我的問題 - 我如何在多個會話之間共享有狀態的對象?浮現在腦海的一個想法是一個單身存儲狀態bean &的一個HashMap,然後由它的哈希每個會話可以檢索豆,但我不知道那是多麼正確的(它似乎像一個相當普遍的事情相當複雜)。它Tieing應用範圍似乎矯枉過正,以及...

附:我也明白,對象需要併發管理等等,我好像不能把我的手指上如何得到它的共享......

編輯:對不起,我以前沒提它 - 使用Glassfish,EE6。

回答

-1

解決。通過ServletContext共享它,我最初認爲它不會工作,因爲FacesServlet是一個單獨的,因爲它認爲它有一個不同的容器。

+0

請詳細解釋你是如何解決它的。 – Mike 2012-11-01 09:01:26

+0

@Mike現在問題已經超過2年了,甚至不記得它是什麼。 :)看看我能不能在週末得到體面的文章,謝謝指出。 – TC1 2012-11-01 09:33:16

0

您有其定義業務流程方案根據Seam框架文件如下

的業務流程跨越多個用戶的交互,因此狀態在多個用戶之間共享,但在一個良好 - 定義的方式。當前任務確定當前業務流程實例,並且業務流程的生命週期是使用流程定義語言在外部定義的,因此沒有針對業務流程劃分的特殊註釋。

Here你可以看到一個Seam業務流程管理教程

通知Seam使用JBoss BPM場景來處理其業務流程的情況下落後。 如果你只是想使用純JBoss的BPM功能,你可以看到here如何與JBoss

整合

又見JBoss BPM User guide

+0

對不起,想我應該在開始後已經提到過它 - 我使用Glassfish的&想保持下去,因爲我敢肯定有一定有得到它GF做的一種方式好吧...我看到了 – TC1 2010-09-22 12:21:57

+0

@ TC1。一種方法可以將你的有狀態對象存儲在應用程序上下文中(因爲會話上下文是*每個用戶*)並且分配唯一的ID以識別遊戲 – 2010-09-22 12:43:01

相關問題