1

我必须实现一个包含该房间用户列表的聊天室。我将使用 mysql+memcache 来执行此操作。当用户进入或离开房间时,房间中的用户数组将被更新。但是,我们在站点上有自动注销功能,因此非活动用户在 30 分钟不活动时会被注销,现在这是一个问题:

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

我怎样才能做到这一点?

4

1 回答 1

0

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

如果是拉,可以轮询登录用户列表,根据数据刷新房间列表。更新视图的 ajax 调用将完成此操作。看看 jQuery 或原型。

于 2012-11-08T23:33:04.940 回答