我有一个Openfire Jabber服务器,列出了超过75,000个用户。其中150个或更多可以在任何时间在线。
我可以在任何地方收集当前登录用户的JID(用户名)吗?我对基础数据有完全数据库访问权限,但服务器似乎没有将当前状态写回数据库。由于用户数量众多,名单未被使用。
返回的一组非常有用的数据来自一个简单的(受密码保护的)网页,每行有一个JID,可选择登录时间,也可能是该帐户最后一次执行操作[如发送消息] 。后两者并不是必不可少的,但如果数据可用,以及可用于用户会话的任何其他信息将非常有用。
答案 0 :(得分:2)
不知道这是否会有所帮助,但我遇到了它寻找类似的功能。如XEP-0045 http://xmpp.org/extensions/xep-0045.html#disco-roominfo中所定义:
如果该信息是公开的,则实现可以返回现有占用者的列表 如果此信息保密,则可以使用,或者根本不返回任何列表。实现 建议部署默认关闭此类信息共享。
所以你需要确保它的工作方式与Openfire上宣传的一样(我遇到的所有xmpp服务器都有一两个错误),我想你需要编写一些逻辑来获得结果。
祝你好运。答案 1 :(得分:1)
不是一个完美的答案,但您想要的查询可能嵌入在session-summary.jsp页面中。我在http://localhost:9090/session-summary.jsp的本地托管服务器上找到了它。我不知道的是,它是否存储在可查询的数据库中,或者是否存储在客户端内部。后者更有可能。
页面显示的数据是名称,资源,状态,状态,优先级,客户端IP和关闭连接。