定期查询或其他实现:Java和Http

时间:2010-07-09 04:38:35

标签: java apache apache-commons

考虑一下,有几个用户正在使用我的Java应用程序。 我正在使用Http Common Apache从Http Server获取GET / POST以获取各种用户数据。

此客户端应用程序中有一个模块触发当前页面号。文档(user1已打开)。我希望其他用户(User2,User3,.... UserN)知道Page no。用户1打开了。

所有用户是否应始终在一段时间内收听/查询HTTP服务器?我认为这不是一个好主意。

如何实现这一点,以便最小化服务器上​​的负载。

2 个答案:

答案 0 :(得分:2)

长轮询: 客户端打开与服务器的连接,服务器仅在user1更改页面时才发送响应(考虑您的示例)。如果您的应用程序的客户端数量不是很大,这将非常有用。

用户查询: 如果您的应用程序上的页码的动态更新不是一项硬性要求,那么通过提供链接查询页码将是一个不错的选择。这将改善服务器性能。

答案 1 :(得分:0)

您需要在服务器应用程序中使用Comet(长轮询)以避免定期轮询。 J2EE 6将支持它。 Developing with Comet and Java描述了如何在J2EE 5中实现它。

其他一些服务器端平台不适合Comet(例如PHP)。