如何跟踪用户在线状态?

Joe*_*Joe 4 usage-statistics

我想捕获以下参数:

lastAccessedTime - 用户上次访问该站点的时间(通常在登录过程中显示)

isOnline - 表示用户是否在线的布尔值.

一个.将这些变量作为User表本身的一部分或者是否应该通过单独的用户审计表处理它是否有意义?

湾 如果某些SOAP/REST API通过API调用公开了这些功能,那么如何跟踪上述参数(例如,在这种情况下你会修改lastAccessedTime - 如果用户登录门户网站,这可能会让用户感到困惑,isOnline位也没有意义如果用户进行API调用).

Myl*_*les 6

我会创建一个链接回用户的会话表.而不是isOnline字段,我只会对在最后x个时间内处于活动状态的会话运行查询.我还会使用每个请求更新该会话字段,即使该请求是通过API发出的.

这确实会在修剪会话表时产生一些开销,但是您也不会使用非用户信息混乱您的用户表,这些信息无法修剪.


Sam*_*son 5

使 lastTimeActive 成为用户表中的一个字段,并在每次访问页面时更新它。您的“在线用户”列表是 lastTimeActive 在 5 分钟内的所有用户。