使用 REST API 获取最后一次注销详细信息 openfire

Get last Last Logout details openfire using REST API

我们有服务器端离线群组推送通知的功能。

Scenario is below :-

应用程序已打开并转到群消息选项卡。现在向群组发送消息,群组的其他用户将收到我发送的消息。

通过从 ios 端关闭(终止或在后台)应用程序,他们将用户状态设置为离线。因此,一旦应用程序关闭,他们将在移动设备中收到推送通知。

问题是通过关闭应用程序我仍然在手机上收到推送通知,即使我阅读了相同的消息。

我在后端设置了一个 cron 作业,该作业每 30 秒在服务器上运行一次,并在组中 checks the user presence 向那些在移动设备上离线的用户发送推送通知。

那么有什么方法可以使用 REST API 获取上次注销时间戳,这样我就可以设置条件并检查上次用户登录时间是否小于当前时间,推送通知将发送。

无法使用 REST 获取上次注销时间 API http://example.com:9090/plugins/restapi/v1/sessions/yourUserName

输出:-

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <sessions>
    <session>
        <sessionId>yourUserName@example.com/1ae2xq14da</sessionId>
        <username>yourUserName</username>
        <ressource>1ae2xq14da</ressource>
        <node>Local</node>
        <sessionStatus>Closed</sessionStatus>
        <presenceStatus>Online</presenceStatus>
        <priority>0</priority>
        <creationDate>2017-01-18T08:58:01.611Z</creationDate>
        <lastActionDate>2017-01-18T08:58:05.121Z</lastActionDate>
        <secure>false</secure>
    </session>
  </sessions>

通过执行上述方法获取创建日期和最后操作日期不正确。

1) 创建日期:- 2017-01-18T08:58:01.611Z
2) 最后一个动作日期:- 2017-01-18T08:58:05.121Z

http://example.com:9090/plugins/restapi/v1/users/yourUserName

不输出上次登录时间戳

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<user>
    <username>yourUserName</username>
    <name>yourUserName</name>
    <email>yourUserName@example.com</email>
    <properties/>
</user>

我们用过REST API Plugin

如有任何帮助,我们将不胜感激。

User Status Plugin 做到了!

User Status Plugin 是Openfire XMPP 服务器的插件,用于将用户状态保存到数据库。

此插件自动将每个用户和资源的最后状态(存在、IP 地址、登录和注销时间)保存到 Openfire 数据库中的 userStatus table。

您可以选择将用户状态条目(IP 地址、登录和注销时间)存档指定的时间。历史条目存储在 userStatusHistory table 中。历史存档的设置可以在 "User Status Settings" 页面上配置,您可以在 Openfire 管理控制台的 "Server" 选项卡上找到该页面。

该插件可在 http://maven.reucon.com/projects/public/user-status

根据该项目的网站,目前此插件仅适用于 MySQL。

因此,通过设置基于注销时间和消息发送推送通知时间的条件。