如何让用户在线状态jsp

时间:2014-03-06 07:18:19

标签: javascript jsp servlets client-side server-side

我想让我的Web应用程序用户登录列表中包含所有可能的流程,例如意外关机(断电),强制关闭浏览器以及此流程中的任何内容。我想只向在线用户显示一些状态文本。我找到了一些解决方案但是,它们是解决方案将需要服务器大量的内存,例如将登录表更新为last_logged列,当前时间每20秒从客户端到服务器端,并检查last_logged时间,从现在起不到20秒,状态为脱机状态。我需要完美的解决方案,对服务器负载繁重。简单地说,我想要这个gmail聊天列表所有流程在gmail聊天工作正常。 我不知道这些概念我是新概念。可能是您已经找到此解决方案,如果您已经知道此类概念的此解决方案,请分享您的知识。它必须对所有开发者都有帮助,我很感激你的效果。

感谢您花费宝贵的时间阅读我的帖子:)

2 个答案:

答案 0 :(得分:0)

为什么你认为更新表需要“大量内存”?或者你为什么认为它“服务器负担过重”?它基本没什么。除了使用您所描述的数据库之外,没有其他解决方案,因为浏览器在用户离开您的站点时不会实现任何类型的消息。您必须通过更新具有上次访问时间的表等来自行跟踪。

即使浏览器确实实现了“用户已离开您的网站”类型的消息,您仍然需要更新数据库并从中读取数据来跟踪这些内容。

另外,即使浏览器发送了这类消息,如果用户断电,浏览器显然也无法发送。

答案 1 :(得分:0)

我很想知道你解决了什么解决方案。我也面临同样的挑战,我决定使用Memcached服务器来实现这一目标。基本上我正在做的是缓存一个密钥,这个密钥是Memcached中的客户ID持续一段时间,每当用户做任何表示他在线存在的活动时,我都会更新到期时间,例如1分钟。如果用户未创建新事件或操作,则密钥将从数据库到期,并且脱机到其他用户。就像你描述的一样,但我只是在记忆中这样做。