Codeigniter - 如何获得其他用户会话

时间:2016-05-09 07:33:19

标签: php codeigniter session


我正在使用codeigniter中的聊天我想让活跃的用户参与进来,这样我就可以在聊天中显示用户是在线还是离线。 我尝试了以下但结果是空的。

$this->session->all_userdata();

请帮帮我。

3 个答案:

答案 0 :(得分:1)

如果您正在使用数据库会话,则可以使用对ci_sessions表的调用(或您为其命名的任何内容)来验证登录状态。然后,您可以使用简单查询来验证他们是否在过去一小时内(或其他任何时间)浏览并验证它们是否在线。

示例SQL查询:

SELECT FROM_UNIXTIME(timestamp) AS 'timestamp' from ci_sessions
WHERE timestamp > UNIX_TIMESTAMP(DATE_ADD(CURDATE(),INTERVAL -1 HOUR))
ORDER BY timestamp DESC

这将返回过去一小时内活动的所有用户(每次请求页面时都会更新时间戳列)

您还可以从“数据”中获取用户详细信息。列...

$this->session->all_userdata()

不会仅返回所有登录用户当前登录用户的所有可用数据

答案 1 :(得分:0)

您需要在表格中使用额外字段作为" fld_userlogin"。如果用户登录fld_userlogin将为1,则使用此字段进行管理。其他明智的0.注销后fld_userlogin将为0.这是非常简单的比较会话。一切顺利

答案 2 :(得分:0)

您可能希望使用网络套接字,因为我认为如果用户在线或离线,您需要即时反馈。查看Ratchet(http://socketo.me/docs/hello-world),我确信有CI实现使用这个或类似的东西。真的取决于聊天应用的范围以及您想要反馈的瞬间。