2013-06-01 13 views
12

私は本当にこの問題の解決策を見つけようとしましたが、失敗しました。この概念に関連するスレッドがいくつかありますが、包括的な解決策は見つかりませんでした。XMPP(Openfire)プッシュ通知Android

メッセージを送信するOpenfireサーバーがあります。両方のユーザーがオンラインの場合、問題はありません。ただし、ユーザーがオフラインのときは、Whatsappのようにプッシュ通知を送信したいと考えています。 Whatsappや他のIMのアプリはプッシュ通知を送信するためにejabberの修正版を使用していると聞きましたが、どうやって見つけられなかったのですか?

1つの可能性はGCMを使用することですが、これが正しい方法であるかどうかはわかりません。また、バッテリ寿命を延ばさないために、私はポーリングを避けたいと考えています。

誰かがこれに対するいくつかの解決策を知っているか、例がありますか?

答えて

2

さて、XMPPでGCMを使用できます。 新しいGCM Cloud Connection Serverを使用すると、サーバーとAndroidアプリケーション間の双方向通信(クラウドからデバイスへとデバイスからクラウドへ)通信にXMPPプロトコルを使用できます。

GCMクラウド接続サーバ(CCS)

は にサードパーティ製のサーバはXMPPプロトコルを使用して、Googleのサーバーとの持続的なTCP の接続を確立することで、Androidデバイスと通信できます。この の通信は非同期で双方向です。

+0

私は試してみます。私はこれがどのように良い解決策になるかを見ています。あなたのソリューションが私のために働いたら、私はあなたの答えを受け入れるでしょう:) – Max

+0

これは試してみる価値はありますが、試用版であることを忘れないでください。 – Eran

+0

GCMの使用を避けたいと思っていました。プッシュ通知を受け取るにはデバイス上にGoogleアカウントが必要でしたが、現時点ではこれが唯一のオプションだと思います。あなたの答えをもう一度おねがいします。 – Max

-3

openfireで自動的に行われ、オンラインでユーザーにメッセージが届きます。したがって、オフラインユーザーにメッセージを送信する心配はなく、ユーザーがオンラインになると、メッセージは自動的にユーザーにプッシュされます。

+0

これは本当ですが、私はInstant Messengerを作成したいと思います。ユーザーがオフラインの場合にプッシュ通知が必要です。私は彼がメッセージ(プッシュ通知)を送信されたら、ユーザーに知らせてほしい。 – Max

+1

バックグラウンドサービスを実行せずにOpenFireへの接続を維持しないのはなぜですか? –

8

私はopenfireを勉強しており、あなたと共有したいいくつかの良いオプションを見つけました。 githubでプラグインを見つけたので、今週テストします。それはあなたの目標に、私に良い解決策になるようだ:https://github.com/meisterfuu/Openfire-GCM/

別のオプションは、パラメータにしてからで指定されたURLを呼び出しCallbackOnOfflineプラグインを使用することです。このURLはWebサービスのエンドポイントになる可能性があり、そのデータ(ToとFrom)を使用すると、プッシュの関連IDをベースに取得してプッシュを実行できます。

https://www.igniterealtime.org/projects/openfire/plugins.jsp

+0

Openfire-GCMは動作しません。あなたはおそらく更新されたバージョンを持っていますか? – Pierre