Jquery聊天如何跟踪用户会话

时间:2011-10-28 08:36:37

标签: php jquery

我们在公司内部实施了JQuery聊天,以进行内部通信。它工作正常。我们正在数据库中保存用户状态,当用户登录时将状态保存在DB上,当他注销更改状态为注销时。

问题是,如果任何用户没有点击已注销的按钮并关闭窗口或关闭他的电脑,他仍然会登录我们的聊天系统。

我们如何通过跟踪用户会话来跟踪每个用户是否已登录?

2 个答案:

答案 0 :(得分:2)

我认为实现这一目标的最佳方式(但不是最安全或最强大)将通过cookie。 首先,server / jquery脚本会在计算机上放置一个cookie,当用户登录时浏览器会话结束时该cookie将被删除。然后当他们注销时,删除cookie。因此,当您想要检查用户是否已登录时,您会查找cookie。

答案 1 :(得分:0)

有一个解决方案使用CRON例如:

让用户向服务器发送一个小“ping” - 告诉服务器,该用户仍然登录,活动并打开浏览器的消息。每次ping时,将用户的last_activity时间更新为当前的。

使用CRON,您可以检查所有用户的last_activity时间是否大于30秒。如果是这样 - 将其状态设置为已注销。

简单的SQL查询:

UPDATE users
   SET logged_in = false
 WHERE logged_in = true
   AND UNIX_TIMESTAMP() - last_activity > 30