我正在编写服务器/客户端游戏,一个典型的场景如下所示:一个客户端(clientA)向服务器发送消息,服务器中有一个MessageDrivenBean来处理此类消息。 MDB完成其作业后,会将结果消息发送回另一个客户端(clientB)。关于JMS系统结构
在我看来,我只需要两个队列进行这种通信,一个用于输入另一个用于输出。为每个连接创建新的队列不是一个好主意,对吧? 输入队列相对清晰,如果有更多的客户端同时发送消息,则消息只是在队列中等待,而服务器中有更多的MDB实例,这不应该是一个很大的性能问题。
但在另一方面,我不太清楚输出队列,我应该使用主题而不是队列吗?每个客户端正在监听输出队列,其中一个获取新消息并检查属性以确定消息是否属于该消息,如果不是,则回滚事务,消息返回队列并准备好用于其他客户端... It应该工作,但一定很慢。如果我使用topic,每个客户端都会得到一份消息副本,如果不是这样,就会忽略消息。它应该会更好,对吧?
我是新的消息系统。有没有关于我的实施的建议?谢谢!
感谢您的回答。现在我对JMS更加清楚了。顺便说一句。我使用JMS是因为前端使用flash,我使用blazeds消息系统与java后端进行通信。 http绝对是一种选择,但blazeds消息系统具有服务器数据推送功能,这意味着不必每秒都查询服务器响应,客户端在收到响应时立即获得响应。所以我决定使用jms。 – cn1h
@ cn1h随着服务器将数据推送到客户端,这是有道理的。你有这样的技术是很好的,谢谢你的解释。 – MaDa