我有一个内联聊天应用程序,我从Ajax Chat获得,它的工作非常出色。该应用程序允许用户与在系统上注册的用户聊天。即:
现在我需要显示用户是在线还是离线。
所以我的问题是如何使用PHP显示在线用户?
谢谢
答案 0 :(得分:1)
基本上您需要的是一种注册用户活动的方法。
您可以通过PHP中的会话执行此操作,然后记录这些内容。有很多方法可以在日志中注册您的活动。如果活动未在例如5分钟内更新,则用户处于脱机状态。从某种程度上说,你只需要一个sessionId和一个时间戳(我建议这也挂起到用户ID)。如果是离线,则没有分配userId,在线时添加userId。如果你有那些,它很容易。它是一个在加载新页面时不断更新它们的问题,如果它们注销,你只需要销毁会话,或者更新它以便它不会链接到用户。
它可能不是最好的系统,但它有效,它可能对你有帮助。
答案 1 :(得分:0)
我不知道你的具体需求。对不起,如果我错了。
如果Jabber支持使用Ajax Chat,为什么不尝试使用ejabberd类型的XMPP服务器而不是自己重新发明轮子。你也可以看看Apache Vysper,因为它也支持扩展模块。如果XMPP服务器在那里,用户在场处理和消息传输将成为一个蛋糕步行。
答案 2 :(得分:0)
您需要的是不断更新数据库中的表,以保存用户的最后一次更改并保存日期时间...因此,如果该日期超过5或10分钟,则用户可以关闭..你可以用ajax来做...
答案 3 :(得分:0)
我要做的是有一个脚本,客户端运行该脚本来执行ajax调用,以使用上次查看的时间戳更新数据库中的条目。不常用,否则您的服务器会过载。
你也可以在if语句中检查键击,鼠标移动以及窗口是否处于活动状态,如果你真的想要获得技术并处于离开状态。
然后在活动聊天中,只需检查活动消息的时间戳或用户列表打开时。超出可接受范围的任何内容都会将用户显示为离线。 5分钟对我来说似乎很长。可能每10秒轮询一次支票?