2010-09-22 63 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

相关问题