2017-03-13 10 views
2

私はいつもアンドロイドアプリのプッシュ通知にGCMを使用していましたが、セキュリティ制約のためにGCMを避けてローカルプッシュサーバーを使用する必要があります質問はありますが、どれもうまく構成されていません。このトピックではXMPPサーバーとクライアントライブラリを使用するためのステップバイステッププロセスについて明確な回答を得たいと考えています。GCMを使用しないでアンドロイドのプッシュ通知

答えて

1

GCMとは何か、 。

伝統的に、各デスクトップアプリケーションは、Openfireインスタンスに接続し、サードパーティのサービスなしでメッセージを送受信できるように、独自のTCP接続を確立します。

  1. モバイルデバイスが限られたリソースです:

    このアプローチは、モバイル環境で多くの問題を抱えているあなたは、多くのTCPコネクションを持っている場合、それは速く、あなたのバッテリーを消耗します開く

  2. モバイルデバイスないは、永続的なネットワークを持っています接続:携帯電話やWi-Fiネットワークの変更(バッテリーにも影響があります)に気を付ける必要があります。これらの不安定な環境でメッセージを失ってはいけません。これらの問題を解決するために

、アップル、グーグル(とも彼らのマイナーな競争相手は)「通知サービス」を提供。

  1. Apple/Googleの「通知」インフラストラクチャサーバーへの接続を維持するシステム全体のバックグラウンドアプリケーション(「サービス」)。
  2. サーバー側とクライアント側の両方のアプリケーションを「登録」するためのAPI:開発者向けのサーバー側アプリケーションがすべてのイベントをApple/Googleに送信し、クライアントアプリケーションがそのシステムサービスから「プッシュ」を受信すると、ネットワークの停止やバッテリの影響を気にする - すべての問題はOSの製造元が処理します。

しかし、あなたはあなたによって世話をするすべてのものを得る「GCMを避ける」しようとし、プラスされています

  1. あなたの「手作り」永続的なネットワークサービスは、Googleの1に干渉し、そして意志ます(実装は、Apple/Googleの大きなエンジニアリングチームによって解決ところ、既にあるエラー/他のコーナーケースを持っているだろうという理由だけでそれ以上または、)少なくともダブルネットワークとバッテリの使用

  2. COMアプリケーションは劇的によりますセキュリティの問題があなたによって処理されるようになり、ユーザーエクスペリエンスが低下する(「独自の」ネットワーキングを持つアプリケーションはしばしば悪いUXデザインを持ち、エンドユーザーにネットワークエラーメッセージが表示され、例えば)。

ので、まとめると:

  1. はい、技術的に、あなたはピシャリライブラリを取り、Openfireサーバに接続することができます。基本的にはGCMと同じです。
  2. いいえ、99.9999%の症例ではではありません。はこのようになります。あなたが競合するモバイルプラットフォームを開発する大企業でない限り。
+0

答えを考えてみると、避けるべきいくつかの問題が明らかになったと思います。 – Abrd

関連する問題