2

我需要知道如果 symfony 中的特定用户登录了应用程序,我该如何获取,有没有办法获取当前登录用户的会话 ID?

当我有一个名为的字段is_online并在用户登录和注销应用程序时设置它时,我尝试过使用表,所以当用户关闭浏览器或会话结束时出现问题,因此该字段is_online保持真实。这就是如果用户登录应用程序,我需要另一种方法来获取的原因。

任何建议都会很有用。

4

2 回答 2

4

您可以从用户发送 ajax 请求,并且只要有人不发送请求,例如 1 分钟将他的状态更改为离线。将状态存储在一些键值存储(即 MemCache)中是个好主意。看这里了解详情

于 2012-05-24T14:49:23.250 回答
1

在 ajax 中创建一个数据库字段lastonlinetstamp和一个ping方法,每分钟调用一个具有相同会话的服务。然后让 ping 服务更新lastonlinetstamp. 如果此值早于 1 分钟,您就知道该用户处于离线状态。但是:这会增加对您服务器的请求数量。

于 2012-05-24T15:32:03.010 回答