1

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

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

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

4

2 回答 2

2

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

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

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

祝你好运。

于 2012-05-17T01:11:48.597 回答
1

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

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

于 2009-11-04T18:11:00.753 回答