我需要知道如果 symfony 中的特定用户登录了应用程序,我该如何获取,有没有办法获取当前登录用户的会话 ID?
当我有一个名为的字段is_online
并在用户登录和注销应用程序时设置它时,我尝试过使用表,所以当用户关闭浏览器或会话结束时出现问题,因此该字段is_online
保持真实。这就是如果用户登录应用程序,我需要另一种方法来获取的原因。
任何建议都会很有用。
我需要知道如果 symfony 中的特定用户登录了应用程序,我该如何获取,有没有办法获取当前登录用户的会话 ID?
当我有一个名为的字段is_online
并在用户登录和注销应用程序时设置它时,我尝试过使用表,所以当用户关闭浏览器或会话结束时出现问题,因此该字段is_online
保持真实。这就是如果用户登录应用程序,我需要另一种方法来获取的原因。
任何建议都会很有用。
您可以从用户发送 ajax 请求,并且只要有人不发送请求,例如 1 分钟将他的状态更改为离线。将状态存储在一些键值存储(即 MemCache)中是个好主意。看这里了解详情。
在 ajax 中创建一个数据库字段lastonlinetstamp
和一个ping
方法,每分钟调用一个具有相同会话的服务。然后让 ping 服务更新lastonlinetstamp
. 如果此值早于 1 分钟,您就知道该用户处于离线状态。但是:这会增加对您服务器的请求数量。