如何让用户在线状态jsp



我想获得我的web应用程序用户日志列表,其中包含所有可能的流程,如意外关闭(电源切断)、强制关闭浏览器等等。我只想向在线用户显示一些状态文本。我找到了一些解决方案,但这些解决方案会占用服务器大量内存,比如从客户端到服务器端,每隔20秒将登录表更新到带有当前时间的lastlogging列,并在不到20秒的时间内检查lastlogging时间,它将状态设为脱机。我需要一个完美的解决方案,不需要服务器繁重的工作负载。简单地说,我想喜欢这个gmail聊天列表所有流在gmail聊天上运行良好。我不知道这些概念,我是新概念。可能是你已经找到了这个解决方案如果你已经知道这种概念的解决方案,请分享你的知识。它,一定会对所有的开发人员有所帮助,我很感激你的效果。

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

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

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

另外,即使浏览器发送了这些信息,如果用户失去电源,浏览器显然也无法发送

我很想知道您采用了什么解决方案。我也面临着和你一样的挑战,我决定使用Memcached服务器来实现这一点。基本上,我所做的是将一个密钥(即客户id)缓存在Memcached中一段时间,每次用户进行任何表示其在线的活动时,我都会更新到期时间,大约为1分钟。如果用户没有创建新的事件或操作,则密钥将从数据库中过期,他将脱机给其他用户。就像你描述的一样,但我只是在记忆中做的。

最新更新