【问题标题】:Get last Last Logout details openfire using REST API使用 REST API 获取上次上次注销的详细信息 openfire
【发布时间】:2017-06-18 02:55:08
【问题描述】:

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

场景如下:-

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

通过从 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)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

任何帮助都将是 appriciate。

【问题讨论】:

  • 您如何管理状态?您是否在登录-注销时明确发送出席信息?
  • @MrPk 感谢您的关注。顺便说一句,聊天功能来自 ios 端,因此当应用程序进入后台或终止状态时,他们正在管理存在和处理服务器。如果用户杀死或进入后台应用程序用户将离线。
  • 根据我的经验,如果您让 Openfire 自行管理而没有明确存在离线/在线状态,则上次活动会中断。当你去后台或杀死应用程序并尝试你得到的东西之前尝试发送一个存在
  • 很高兴告诉您我们已经使用用户状态插件成功完成了它。这个插件会自动将每个用户和资源的最后状态(存在、IP 地址、登录和注销时间)保存到 Openfire 数据库中的 userStatus 表中,所以我所做的是根据已发送的通知比较消息时间和注销时间。感谢您的时间和努力。

标签: php rest xmpp openfire


【解决方案1】:

User Status Plugin 完成了这项工作!

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

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

您可以选择将用户状态条目(IP 地址、登录和注销时间)存档指定时间。历史条目存储在 userStatusHistory 表中。历史存档的设置可以在 Openfire 管理控制台的“服务器”选项卡上的“用户状态设置”页面上进行配置。

插件在http://maven.reucon.com/projects/public/user-status提供

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

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

【讨论】:

    猜你喜欢
    • 2020-07-15
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-26
    • 1970-01-01
    相关资源
    最近更新 更多