我们正在使用ejabberd作为聊天客户端,我们正在使用ProcessOne快速重新连接和推送模块。
如果没有保持活动数据包,我们将会话时间保持为3分钟意味着3分钟后,服务器将标记该会话已过期,并且用户将被视为脱机。
如果我将查询该用户上次活动,那么当用户上次在线时,服务器将返回我们的时间间隔。但在会话期间,即使我的应用程序终止,那么如果我查询最后一个活动,它将返回我们的用户在线。
问题:ejabberd是否根据会话或状态返回最后一个活动计时器?
我可以看到如果我只是重新连接ejabberd并且不在完全身份验证中发送任何状态而不是快速重新绑定。它将该用户视为在线。
答案 0 :(得分:0)
我不知道任何XEP会覆盖你的情况。 XEP-0012 Last Activity已启用或未启用。如果启用,它会将最后一个活动存储在上次不可用的状态中。
有几个XEP允许在状态下标记上一个活动,但它们不提供存储/查询(XEP-0256 - Last Activity in Presence, XEP-0319 - Last User Interaction in Presence)
看起来您的要求不受任何XEP的保护。根据您的确切详细要求,您需要一个Last活动的自定义协议(和实现):上一次人类活动的标准是什么,如何检测它们,我们是否要在断开连接时更新上一个活动,如何禁用最后一个活动没有任何东西存在,所以需要设计自定义。