ejabberd 上所有用户的最后活动
Posted
技术标签:
【中文标题】ejabberd 上所有用户的最后活动【英文标题】:Last activity for all users on ejabberd 【发布时间】:2015-07-07 05:10:32 【问题描述】:我们的服务器上安装了 ejabberd。
我正在使用 asmack 4.0.7 与 ejabberd 服务器交互。
我想知道所有用户的最后一次活动(XEP-0012)。
我在我们的服务器上有 10 个用户帐户。即 john@myserver.in、mike@myserver.in、jerry@myserver.in 等
ejabberd 的行为是要查找用户的最后一个活动,该用户必须登录。我的意思是检查 john@myserver.in 的最后一个活动,他必须登录。
如果我以 john@myserver.in 身份登录,那么我将成功获取 john@myserver.in 的最后一个活动。 john 登录后,如果我检索 mike@myserver.in、jerry@myserver.in 或任何其他用户的最后活动,我会收到 ejabberd 服务器的 service-unavailable 响应。
<iq from='mike@myserver.in/Smack' to='john@myserver.in/Smack' type='error' id='uHn-5'>
<query xmlns='jabber:iq:last'/><error code='503' type='cancel'>
<service-unavailable xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
</error></iq>
我的要求是在不为所有用户登录的情况下检索最后一个活动。
这可能吗?
如果此查询需要任何其他信息,请告诉我。
谢谢
【问题讨论】:
【参考方案1】:如果您想要所有用户的最后一个活动,这可能用于后端任务。您不应该使用 XMPP 客户端协议来执行此操作,而应使用后端模块(ejabberd 插件或从最后一个数据库读取)。
【讨论】:
Mickaël,感谢您的宝贵反馈。在类似的行中,我想知道,如果我将查询从上次活动 (XEP-0012) 更改为所有用户的离线消息存储 (XEP-0160),答案是否相同。我想知道所有用户的离线消息存储(XEP-0160)。 ejabberd 的行为是要知道用户的离线消息,该用户必须登录。我的意思是检查 john@myserver.in 的离线消息,他必须登录。我的要求是在没有离线消息的情况下检索离线消息为所有用户登录。 是的,相同的注释 XEP-0160 定义客户端行为而不是后端处理。没有“客户端”会检索每个用户的所有离线消息。您需要以完全不同的方式设计解决方案。 Mickael iam 总是最后一次看到是 9223372036854775807 这是我的代码,请帮助我***.com/questions/41312742/… @MaheshNarla 你找到解决方案了吗我也收到了 9223372036854775807以上是关于ejabberd 上所有用户的最后活动的主要内容,如果未能解决你的问题,请参考以下文章