哪些用户当前连接到 Openfire Jabber 服务器?

Posted

技术标签:

【中文标题】哪些用户当前连接到 Openfire Jabber 服务器?【英文标题】:Which users are currently connected to an Openfire Jabber server? 【发布时间】:2009-04-17 11:03:35 【问题描述】:

我有一个 Openfire Jabber 服务器,列出了超过 75,000 个用户。其中,150 人或更多人可以随时在线。

我可以在任何地方收集当前登录用户的 JID(用户名)吗?我拥有对基础数据的完全数据库访问权限,但服务器似乎没有将当前状态写回数据库。由于用户数量众多,名册没有被使用。

返回的一组非常有用的数据来自一个简单的(受密码保护的)网页,每行一个 JID,可选的还有登录时间,也可能是该帐户最后一次执行操作的时间 [比如发送消息] .后两者并不那么重要,但如果数据可用,以及有关用户会话的任何其他可用信息,它会很有用。

【问题讨论】:

【参考方案1】:

不知道这是否会有所帮助,但我遇到了类似的功能。如 XEP-0045 http://xmpp.org/extensions/xep-0045.html#disco-roominfo 中所定义:

如果该信息是公开的,则实现可能会返回现有居住者的列表 可用,或者如果此信息保密,则根本不返回任何列表。实现 建议部署默认关闭此类信息共享。

所以你需要确保它像 Openfire 上宣传的那样工作(我遇到的所有 xmpp 服务器都有一两个错误),我想你需要编写一些逻辑来获得结果。

祝你好运。

【讨论】:

【参考方案2】:

不是一个完美的答案,但您想要的查询可能嵌入在 session-summary.jsp 页面中。我在http://localhost:9090/session-summary.jsp 的本地托管服务器上找到了它。我不知道是否将其存储在可查询的数据库中,或者是否存储在客户端内部。后者的可能性更大。

页面显示的数据是名称、资源、状态、状态、优先级、客户端 IP 和关闭连接。

【讨论】:

那将是很多页面要刮。我希望有一些 DB 访问,或者可能连接到服务器以检索当前登录的 JID 的大列表,可能还有上面的附加信息。

以上是关于哪些用户当前连接到 Openfire Jabber 服务器?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 simple-xmpp/node-xmpp 获得 Jabber 用户的名册?

如何将tigase连接到openfire?

XMPP iOS:无法连接 openfire 服务器

无法让 jabber 客户端连接到在 localhost 上运行的 ejabberd

如何在 XMPP/Jabber 中重新连接匿名用户

无法将 Gloox Xmpp 客户端连接到 Openfire 服务器