数据发送服务器到不同的客户端数据

时间:2014-06-13 14:28:32

标签: java rmi

我正在做一个餐厅订购系统的项目,因为我通过使用不同的客户和订单处理订单,订单可以发送不同的系统,例如:

  1. kitchen1
  2. Kitechn2,
  3. kitchen3
  4. 首先,我可以使用rmi线程概念创建不同的客户端,并且他们可以将(意味着所有客户端)数据发送到我的服务器,我想将该数据发送到不同的客户端

    我该怎么做?我创建了不同的客户端并将数据发送到服务器建议我该怎么做?

1 个答案:

答案 0 :(得分:1)

RMI是一种同步(请求/响应)协议 - 客户端向服务器发送请求,它可以响应。

服务器不能随意向客户端发送更多数据。

使用Active MQ之类的消息代理通过JMS在Java中进行异步通信的最简单方法。

这个过程会是这样的:

  • 服务器启动并连接到其传入请求队列。

  • 客户端1创建一个临时队列,并通过请求队列向服务器注册,传递其临时队列的名称。

  • 服务器存储客户端及其临时队列的名称。

  • 客户端2执行相同操作,服务器存储客户端及其临时队列的名称。

  • 客户端1向服务器发送消息,导致服务器向客户端2发送消息,该消息通过客户端2向服务器注册的临时队列进行。

  • 客户端2响应服务器,导致服务器向客户端1发送消息,这是通过客户端1向服务器注册的临时队列进行的。

这可以继续,直到一个或两个客户端关闭,此时他们的临时队列关闭,服务器不能再向该客户端发送消息(尽管客户端最好自行注销)。