我想用Java开发一个桌面应用程序(我已经掌握了非常基本的Java知识)。它将在客户端的计算机上运行,并从互联网上托管的服务器中提取信息。我可以设置一个计划任务,每隔2分钟连接到服务器并检查任何更新/更改,但我不认为这是一个非常好的主意。有没有办法让客户知道这些变化?例如,每当有变更服务器将向客户端发送通知更新?服务器可能是不同的技术,例如爪哇
任何帮助将不胜感激,再次感谢!
答案 0 :(得分:5)
将推送到客户端总是很难 - 主要是因为防火墙。在大多数情况下,使客户端从服务器(使用HTTP)拉出的可能性更大。
现在,您目前每两分钟进行一次投票。那个可能是合适的 - 或者根据你正在更新的内容,更少(每天一次)这样做可能会更好。如果它是客户端软件的更新,很少有更新。如果它是聊天对话的更新,即使两分钟也太长 - 在这种情况下,您应该将comet / long polling视为一种技巧。 (实现长轮询有各种技术;您不必使用任何特定的东西 - 这就是为什么我将其描述为一种技术而不是其他任何技术。)
答案 1 :(得分:1)
如果使用Java Server,则可以使用JMS将消息从服务器发送到应用程序。
或者您可以使用Comet应用程序通过HTTP将消息推送到客户端。
第三种方法是创建自己的推送系统,其中客户端连接到服务器以提供有关如何联系的一些信息,并使用Observer / Observable模式在每次修改时通知每个客户端。
资源: