3

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

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

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

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

谢谢。

4

2 回答 2

3

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

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

编辑:

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

另一个编辑:

链接到 Github 存储库:https ://github.com/candy-chat/onlineUsersPlugin

于 2012-06-05T12:12:10.407 回答
1

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

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

于 2012-06-05T12:16:01.463 回答