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

时间:2017-02-01 11:17:33

标签: php rest xmpp openfire

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

  

情景如下: -

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

通过从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)creationDate: - 2017-01-18T08:58:01.611Z
2)lastActionDate: - 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

任何帮助都会很合适。

1 个答案:

答案 0 :(得分:1)

User Status Plugin完成了这项工作!

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

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

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

该插件位于http://maven.reucon.com/projects/public/user-status

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

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