Android で推奨されるアプローチは、Google Cloud Messagingです。
Google Cloud Messaging for Android (GCM) は、サーバーからユーザーの Android 搭載デバイスにデータを送信できるようにするサービスです。これは、サーバーからフェッチする新しいデータがあることをアプリに通知する軽量のメッセージ (たとえば、友人がアップロードした映画) である場合もあれば、最大 4kb のペイロード データを含むメッセージである場合もあります (アプリはインスタント メッセージングを好みます)。メッセージを直接消費できます)。
GCM サービスは、メッセージのキューイングと、ターゲット デバイスで実行されているターゲット Android アプリケーションへの配信のすべての側面を処理します。GCM は、メッセージングのニーズがどれほど大きくても完全に無料であり、クォータもありません。
サーバーは Google と通信し、Google はメッセージをリアルタイムで(デバイスの電源が入っていてインターネットに接続されている限り、ほぼそうです) Android デバイスにプッシュします。アプリが初めてインストールされたときに Android デバイスで行われる登録プロセスがあります (その後、登録を再検証するため)。Android アプリでは、この登録 ID をサーバーに送信して、後で使用するために保存できるようにする必要があります。サーバーは、そのデバイスにメッセージをプッシュするときに、この登録 ID を使用します。
サーバーと Google 間の通信プロトコルは JSON over HTTPS です。サーバーは、Google のサーバーと通信できる限り、任意の言語/テクノロジを使用できます。PHP/MySQL アプリケーションは、サービスの基本的な要件を確実に満たすことができます。
GCM 機能を使用するクライアント Android アプリケーションを作成するには、次の基準を満たすアプリケーション サーバーが必要です。
- お客様とコミュニケーションがとれる方。
- GCM サーバーへの HTTPS リクエストを送信できます。
- 指数バックオフを使用して、要求を処理し、必要に応じて再送信できます。
- API キーとクライアント登録 ID を保存できます。
クライアント側では、Android デバイスは API バージョン 8 (Android 2.2) 以降を実行している必要があります。もちろん、着信メッセージを処理するのも Android アプリの役割です (BroadcastReceiver を使用します。これは、メッセージが到着するたびに Android システムが Intent を受信者に送信するためです)。これにより、必要に応じてメッセージを処理できます。