0

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

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

  • 客户端类型1
  • 客户端类型2

两者都可以访问数据库。

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

ClientType2从数据库中检索数据。

但是当ClientType2Start时, ClientType1应该开始将数据存储在数据库中。

同样,当 ClientType2说 Stop 时,ClientType1应该停止将数据存储在数据库中

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

Q1。这个问题的解决方案是什么?

  • 以下是我想到的方法:

  • 在数据库中创建一个表,其中有一列显示状态StartStop并且该列的值应由ClientType2设置。ClientType1会不断地向数据库发送查询,以便从该表中获取状态,并根据状态执行操作。

  • 应用ServerPush方法,服务器将通过该方法保持与 ClientType1 的连接,并在收到来自ClientType2的命令(开始停止)时将请求发送给他。这种方法的问题是没有。服务器上打开的套接字的数量将随着数量的增加而增加。ClientType1

4

2 回答 2

0

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

然后,客户可以:

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

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

于 2011-03-20T11:45:47.007 回答
0

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

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

于 2011-03-20T11:51:52.447 回答