考虑一下,有几个用户正在使用我的Java应用程序。 我正在使用Http Common Apache从Http Server获取GET / POST以获取各种用户数据。
此客户端应用程序中有一个模块触发当前页面号。文档(user1已打开)。我希望其他用户(User2,User3,.... UserN)知道Page no。用户1打开了。
所有用户是否应始终在一段时间内收听/查询HTTP服务器?我认为这不是一个好主意。
如何实现这一点,以便最小化服务器上的负载。
答案 0 :(得分:2)
长轮询: 客户端打开与服务器的连接,服务器仅在user1更改页面时才发送响应(考虑您的示例)。如果您的应用程序的客户端数量不是很大,这将非常有用。
用户查询: 如果您的应用程序上的页码的动态更新不是一项硬性要求,那么通过提供链接查询页码将是一个不错的选择。这将改善服务器性能。
答案 1 :(得分:0)
您需要在服务器应用程序中使用Comet(长轮询)以避免定期轮询。 J2EE 6将支持它。 Developing with Comet and Java描述了如何在J2EE 5中实现它。
其他一些服务器端平台不适合Comet(例如PHP)。