gpt4 book ai didi

php - 在线用户、CodeIgniter 和 session

转载 作者:可可西里 更新时间:2023-11-01 01:06:51 25 4
gpt4 key购买 nike

好的,我正在使用 CodeIgniter 作为我的 MVC,用于我与我的几个伙伴一起工作的项目。我们还使用 CI 的数据库 session 支持。有了这个,我知道已经存在“谁在线”的概念,但没有一个真正适用于我们所说的需求。我们推出的服务是一种独立的 SaaS 类系统,但同时我们也允许我们的用户相互通信。这样我们就可以让他们与他们希望的人共享具体信息,例如谁在线、何时、何地等。也就是说,我知道 CI 的 session 会捕获 IP,就像我们在用户登录时一样。

所以我想知道的是,认为我可以利用 session 数据的本来面目,将 session 数据库中的 ips 与登录的 ips 进行比较,在某种意义上构建我自己的小东西,这是否是一个合理的想法?谁在线”专门针对通过我们的服务彼此“友好”的人。如果这是一个好的和潜在的想法,你们中的任何人会建议什么来解决它并为这种类型的显示器处理它?我只是问,因为我不是 100% 通过 CI 进行的 session 是如何工作的,所以我不确定它是否会像我目前想象的那样对我有利。

如果我的想象力与我失控,否则有什么好的方法来解决这个问题?

编辑在 2 台计算机上登录后,我看到数据库中的 CI session 有 2 台具有相同的 IP,所以我最初的想法似乎是有缺陷的。

同时感谢您的反对票,无论您是谁,您至少可以在评论中说出为什么,我非常想知道如何实现这个想法,但我无法获得反馈?如果您知道这里有一篇文章或帖子可以帮助我,那么至少要指出我的方向,因为我的搜索结果与我在这里试图解释的内容无关。

最佳答案

基本上,您想检查 _ci_sessions 表(或任何您的名字)以查找 last_activity 列在当前时间的特定范围内的记录(5分钟、10 分钟等)。使用 HTTP,没有很好的方法可以知道某人放弃 session 的确切时间(除非他们明确注销,并且您自己销毁 session )。您可以使用套接字来做到这一点,但对于这样的事情来说,这通常是矫枉过正的。

在获得“潜在” session 列表后,您仍然需要遍历每个 session (记住反序列化 user_data 列!)以找到具有正确用户数据键的 session /值构成基于您的身份验证系统的“登录”。我会首先这样做以获得概念证明,然后找到一种方法来缓存几个请求的结果,因为无论如何它都不是请求级准确的,如果每个请求都没有额外的负载,你会做得更好。

关于php - 在线用户、CodeIgniter 和 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8960396/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com