如何通知java桌面客户端有关服务器的更改?

我想用Java开发一个桌面应用程序(我已经掌握了非常基本的Java知识)。 它将在客户端的计算机上运行,​​并从互联网上托管的服务器中提取信息。 我可以设置一个计划任务,每隔2分钟连接到服务器并检查任何更新/更改,但我不认为这是一个非常好的主意。 有没有办法让客户知道这些变化? 例如,每当有变更服务器时都会向客户端发送更新通知? 服务器可能采用不同的技术,例如Java

任何帮助将不胜感激,再次感谢!

推动客户端总是很难 – 很大程度上是因为防火墙。 使客户端从服务器(使用HTTP)拉出更有可能在大多数情况下工作。

现在,您目前每两分钟轮询一次。 这可能是合适的 – 或者根据你正在更新的内容,更少(每天一次)这样做可能会更好。 如果它是客户端软件的更新,很少有更新。 如果它是聊天对话的更新,即使两分钟也太长 – 在这种情况下,你应该考虑彗星/长轮询作为一种技术。 (实现长轮询有各种技术;您不必使用任何特定的东西 – 这就是为什么我将其描述为一种技术而不是其他任何东西。)

如果使用Java Server,则可以使用JMS将消息从服​​务器发送到应用程序。

或者您可以使用Comet应用程序通过HTTP将消息推送到客户端。

第三种方法是创建自己的推送系统,其中客户端连接到服务器以提供有关如何联系的一些信息,并使用Observer / Observable模式在每次修改时通知每个客户端。


资源:

  • Oracle.com – JMS
  • 维基百科 – 彗星
  • 维基百科 – 发布/订阅