聊天室在线用户列表实施

时间:2012-11-08 23:27:28

标签: php mysql memcached

我必须在该房间中实现一个包含用户列表的聊天室。 我将用mysql + memcache做到这一点。 当用户进入或离开房间时,房间中的用户阵列将被更新。 但是,我们在网站上有自动登录,因此非活动用户在非活动状态30分钟后会被注销,现在这是一个问题:

我无法刷新房间中的用户列表,因为我不知道,当autologout发生时。 我们没有用于注销非活动用户的脚本。在主要在线列表中,它们列出如下: SELECT * FROM users WHERE last_fresh> 1352415100 我们的在线列表不会显示用户处于非活动状态超过30分钟,但每次当该房间的每个用户刷新页面时,我都无法在房间中的用户数组中存储和更新last_fresh时间。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

取决于您是否要推送或拉动更改。推送总是首选,但需要采用nginx-push-module或其他一些服务器端技术。拉动肯定更容易,但会产生更多的开销。

如果您正在拉动,则可以轮询登录用户列表并根据数据刷新房间列表。更新视图的ajax调用将实现此目的。看看jQuery或原型。