检查用户是否在页面上

Cip*_*ian 0 php mysql codeigniter

我正在构建一个允许用户托管房间的聊天应用程序.只是为了提供更多反馈:

  1. 用户创建房间(房间是公共的,任何人都可以查看,但如果用户没有注册,聊天将被禁用,系统将提示用户注册聊天.)

  2. 其他用户注册会议室

  3. 用户根据他们注册的订单与主持人聊天

我想表明主持人是否在线.或者更进一步,显示主人是否在房间里.

我不知道该怎么做.

lor*_*o-s 5

基本上,这件事情如下.

每次用户执行操作(聊天刷新,发送消息,访问页面等)时,与用户关联的令牌(保存在服务器中的令牌,例如DB)将使用当前时间进行更新.

| User ID     | Last action         |
-------------------------------------
| 14 (mark)   | 2012-02-09-10:34:53 |
| 56 (phil)   | 2012-02-09-09:12:34 |
|  9 (john)   | 2012-02-09-10:33:11 |
Run Code Online (Sandbox Code Playgroud)

如果他的令牌不是太旧(5/10分钟?),那么你决定一个用户在线

如果使用AJAX每1分钟左右向服务器发送一个定期请求,则可以改进此方法.此AJAX请求更新令牌值.所以,这样一来,如果用户只是盯着页面,你就可以告诉用户是否在线.当他退出(关闭浏览器或选项卡)时,AJAX定期呼叫停止工作,因此在5/10分钟后,用户被宣布离线.

祝好运!