如何在两个客户端之间使用消息驱动的bean

时间:2017-03-30 03:01:01

标签: java-ee ejb message-driven-bean

我是EJB和JavaEE的新手,我目前正在开发一个基本实现游戏的小项目,其中两个玩家可以通过网络浏览器播放PlayerA和PlayerB。

我目前有几个JSP页面设置如下: 登录 - > playerprofile - > acceptGame - > playGame - >结果

播放器A和B有两个登录页面,它们链接到同一个播放器页面,显示所选播放器的用户名和分数,信息存储在数据库中。在该个人资料页面中,玩家可以点击将他们发送到acceptGame页面的链接,其中玩家必须点击接受按钮,如果两个玩家都已接受,他们可以继续玩游戏。在这种情况下使用消息bean是有道理的,因为一个玩家可能已经接受而另一个玩家没有接受,因此接受的玩家应该等待另一个玩家接受。

不幸的是,我在网上看到的每个消息bean教程都只传递了一些TextMessage对象,并且它会在服务器上打印出来,但没有类似这样的场景的例子。

1 个答案:

答案 0 :(得分:0)

当您作为调用者不想等待处理结果时,消息驱动的bean用于处理异步调用。在您的情况下,我认为使用消息驱动的bean不是最佳的。

你也可以用它来实现你的逻辑:playerA接受游戏提供,服务器向MDB发送消息,playerA进入等待状态,MDB存储玩家A接受游戏提供,playerB也接受游戏提供等等,当他们都处于等待状态并且他们都确定对方存有接受时,他们继续玩游戏。

这对我来说似乎过于复杂,消息驱动的bean不会以任何方式改进这个过程。我认为使用有状态的bean可以更舒适地完成相同的结果,因为MDB只能从技术角度消除等待时间(例如,我想发送一封电子邮件,但我不关心它何时实际上只要发送它就会发送),但不是从业务角度来看。如果您的业务逻辑要求您等待,那么您将不得不等待。

相关问题