2017-02-01 7 views
4

私たちはサーバー側からオフライングループプッシュ通知機能を備えています。最後のログアウトの詳細を取得するopenfire REST APIを使用

アプリケーションが開いており、グループメッセージ]タブに移動 - :

シナリオは以下の通りです。グループにメッセージを送信すると、グループの他のユーザーがメッセージを送信します。

iosエンドからアプリケーションを終了(終了またはバックグラウンド)すると、ユーザーのプレゼンスがオフラインに設定されます。したがって、アプリケーションが閉じられると、モバイルでプッシュ通知が取得されます。

問題はですが、私は同じメッセージを読んでもモバイルでプッシュ通知を受けています。

私は30秒ごとに、サーバー上で動作し、グループ内 checks the user presenceと自分の携帯でオフラインになっているそれらのユーザーにnotificaitonプッシュを送信するcronジョブを設定しているバックエンドから

REST APIを使用して最後のログアウトタイムスタンプを取得する方法はありますか。したがって、条件を設定し、最後にログインしたユーザーが、notificaitonsが送信する現在時刻よりも小さいかどうかを確認できます。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <sessions> 
    <session> 
     <sessionId>[email protected]/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> 

作成日と間違った最後のアクションの日付を取得する方法上で実行することにより - :出力のREST API http://example.com:9090/plugins/restapi/v1/sessions/yourUserName

を使用して、最後のログアウト時間を得るために

ことができません。

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

最後にログインした出力をdoesnotタイムスタンプ

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<user> 
    <username>yourUserName</username> 
    <name>yourUserName</name> 
    <email>[email protected]</email> 
    <properties/> 
</user> 

我々はappriciateだろう

どれヘルプREST API Pluginを使用していました。

+0

プレゼンスをどのように管理しますか?ログインログアウト中に明示的にプレゼンスを送信しますか? – MrPk

+0

@MrPkありがとうございます。ちなみに、チャット機能はiOS端末からのものなので、アプリケーションがバックグラウンドになったり、状態を停止したりすると、プレゼンスを管理してサーバを扱います。ユーザーが殺されるか、バックグラウンドでアプリケーションに入ると、ユーザーはオフラインになります。 –

+1

私のexpirienceによって、Openfireがオフライン/オンラインステータスを明示的に存在せずにitselftによって管理できるようにすると、Last Activityが壊れます。あなたがバックグラウンドに行くか、アプリを殺す前にプレゼンスを送信してみてください。 – MrPk

答えて

1

User Status Plugin仕事をしました!

ユーザーステータスプラグインは、Openfire XMPPサーバーのユーザーステータスをデータベースに保存するためのプラグインです。

このプラグインは、OpenfireデータベースのuserStatusテーブルにユーザとリソースごとに最後のステータス(存在、IPアドレス、ログオン、ログオフ時間)を自動的に保存します。

オプションで、指定した時間、ユーザーのステータスエントリ(IPアドレス、ログオン、ログオフ時間)をアーカイブできます。履歴エントリは、userStatusHistoryテーブルに格納されます。履歴アーカイブの設定は、Openfire Admin Consoleの「サーバー」タブにある「ユーザーステータスの設定」ページで設定できます。

プラグインは現在、このプラグインは、唯一のMySQLで動作し、プロジェクトのWebサイトによるとhttp://maven.reucon.com/projects/public/user-status

でご利用いただけます。

したがって、ログオフ時間とメッセージ時間に基づいて条件を設定することで、プッシュ通知が送信されます。

関連する問題