我正在做一个餐厅订购系统的项目,因为我通过使用不同的客户和订单处理订单,订单可以发送不同的系统,例如:
首先,我可以使用rmi线程概念创建不同的客户端,并且他们可以将(意味着所有客户端)数据发送到我的服务器,我想将该数据发送到不同的客户端
我该怎么做?我创建了不同的客户端并将数据发送到服务器建议我该怎么做?
答案 0 :(得分:1)
RMI是一种同步(请求/响应)协议 - 客户端向服务器发送请求,它可以响应。
服务器不能随意向客户端发送更多数据。
使用Active MQ之类的消息代理通过JMS在Java中进行异步通信的最简单方法。
这个过程会是这样的:
服务器启动并连接到其传入请求队列。
客户端1创建一个临时队列,并通过请求队列向服务器注册,传递其临时队列的名称。
服务器存储客户端及其临时队列的名称。
客户端2执行相同操作,服务器存储客户端及其临时队列的名称。
客户端1向服务器发送消息,导致服务器向客户端2发送消息,该消息通过客户端2向服务器注册的临时队列进行。
客户端2响应服务器,导致服务器向客户端1发送消息,这是通过客户端1向服务器注册的临时队列进行的。
这可以继续,直到一个或两个客户端关闭,此时他们的临时队列关闭,服务器不能再向该客户端发送消息(尽管客户端最好自行注销)。