Java - 如何从服务器向客户端发送通知

时间:2011-03-20 11:41:24

标签: java server-push

  

我有一台服务器,我的 java   Web应用程序数据库   服务器驻留。

     

现在我的网络应用的客户是   有两种类型:

     
      
  • ClientType1
  •   
  • ClientType2
  •   
     

两者都可以访问数据库。

     

ClientType1 将数据存储在数据库中。

     

ClientType2 从数据库中检索数据。

     

ClientType1 应该启动   将数据存储在数据库中   当 ClientType2 说   的开始

     

类似 ClientType1 应该停止将数据存储在数据库中   当 ClientType2 表示停止

=============================================== ============================

Q1。此问题有哪些解决方案?

  • 以下是我想到的方法:

  • 在数据库中创建一个表,其中一列显示状态开始停止,此列的值应由 ClientType2设置 ClientType1 会继续将查询发送到数据库以获取此表中的状态,并根据状态执行操作。

  • 应用 ServerPush 方法,服务器将与 ClientType1 保持连接,并在收到时立即向他发送请求 ClientType2 中的命令(开始停止)。这种方法的问题在于没有。服务器上的开放插座将随着增加而增加。 ClientType1

2 个答案:

答案 0 :(得分:0)

我并不认为通过数据库进行进程间通信是一种很好的方法。典型情况是客户端向服务器注册自己,使其有资格使用基于套接字的机制接收消息。

然后客户可以:

  • 要求服务器代表它执行数据库操作
  • 请求访问数据库

如果有许多客户端保持开放连接会出现问题,您可以在每次需要与服务器通信时启动新连接,或者让服务器提供例如服务器可以提供的某种REST API轮询。

答案 1 :(得分:0)

你应该使用一种Ajax,因为这会抽象出“服务器可以调用客户端”。

选择一个允许您打开单个连接并通过此连接执行多项操作的库。