PHP中的OpenFire在线/离线用户

时间:2012-06-05 11:42:04

标签: php mysql xmpp openfire

我有一个运行的OpenFire服务器(它使用MySQL作为它的数据库),我正在尝试使用我的网络应用程序使用PHP http预绑定系统(使用SASL)。

我需要选择我的应用程序的一部分,我需要选择一个尚未在线的随机用户名(对于访客用户)。我在考虑选择一些随机用户(在我创建的Guests组中)并使用Presence Service插件检查他们的在线状态,直到找到可用的用户(离线的用户)。

有没有更好的方法来获取离线/在线用户列表?

服务器是否存储数据库中用户的在线状态? 我一直在寻找OpenFire数据库,但我无法弄明白。

感谢。

2 个答案:

答案 0 :(得分:3)

我为Openfire写了一个小插件(借助其他一些非常简单的插件,我可以插入而无需深入挖掘Openfire API文档),这些插件基本上会在网上发布JSON编码的用户列表。然后我可以抓住它并运行json_decode并循环遍历数组。我目前找不到来源,但似乎其他人也这样做了:

http://community.igniterealtime.org/thread/45107

编辑:

我注意到上面帖子中链接的Github项目现在已经消失,但我会尝试联系他们,看看他们是否还有。

另一个编辑:

链接到Github回购:https://github.com/candy-chat/onlineUsersPlugin

答案 1 :(得分:1)

在用户名单中,您可以获得在线和离线用户。您还可以从名册中获取在线用户的状态消息。

但是为此你必须订阅该用户的存在。只有在名册中添加该用户是不够的,您必须订阅该用户的存在,然后您才能获得其他用户的存在。