プッシュ通知はどのように機能しますか?


25

プッシュ通知システムはどのように機能していますか?

Googleサーバーへのバックグラウンドで実行されるアクティブなTCP / IP接続はありますか?


1
ウィキペディアを参照してください-確かに読みにくいです。基本的に、簡単な言葉で言えば、クライアントはサーバーに接続し、情報提供を求めます。そして、情報が利用可能になると(または、情報がない場合は絶対に)答えが「遅延」します。新しいリクエスト。そのため、これには、バックグラウンドで永続的なTCP / IP接続が必要です。
イジー

@Izzyは正しくありません。(1)メッセージが到着するとドキュメントが作成され、(2)Android上で実行しているものはAndroidが決して殺すことができない接続を開いたままにできるからです。
マイケル14年

@Michaelどのドキュメント?私はその深さを理解するAndroidプログラマーではありません(これはディスカッション掲示板ではありません)。したがって、ここで議論することはできないでしょう。私はそれを聞いたリスナー(放送用)を動的に確立することができます-しかし、私は約ことを聞いたことがない意図(IMHO、彼らがする必要があると宣言してManifest)。Googleサービスが「実際の仕事」を行っており、アプリが単に「受信者」を登録していることを想像できます。上記の説明は、Android固有ではなく、より「一般的」であり、シンプルに保つように努めました;)
Izzy

回答:


25

はい、AndroidはGoogleのサーバーへのアクティブな接続を1つ保持しますが、スマートフォンのアプリにGCMメッセージが送信されるまでトラフィックは送信されないため、電力やデータをあまり使用しません。電話には、すべてのアプリで使用される接続が1つだけあります。GCMを使用する新しいアプリをインストールしても、余分な負荷はかかりません。

GCMの最初のステップは、サードパーティのサーバー(メールサーバーなど)がGoogleのGCMサーバーにリクエストを送信することです。このサーバーは、その開いた接続を介してデバイスにメッセージを送信します。Androidシステムはメッセージを見て、どのアプリ向けかを判断し、そのアプリを起動します。GCMを使用するには、アプリがAndroidに登録されている必要があり、関連する権限が必要です。アプリが起動すると、メッセージのデータを使用してすぐに通知が作成される場合があります。GCMメッセージのサイズは非常に限られているため、アプリは代わりにサードパーティサーバーへの通常の接続を開いて詳細情報を取得する場合があります(たとえば、新しいメールのヘッダーをダウンロードする)。

プッシュ通知を使用する利点は、新しいデータを確認するためにアプリを定期的に実行する必要がなく、電力とデータの両方を節約できることです。GCMのような一元化されたメカニズムを持つことの利点は、デバイスが1つのオープンネットワーク接続のみを必要とし、Android GCMシステムのみが実行を継続する必要があることです。独自のサーバーへの接続。


コメントを1つだけ追加します。GCMメッセージのサイズは4Kバイトなので、その制限はありません。developer.android.com/google/gcm/gcm.html
Moszi

この接続を開いたままにしているのは何ですか?Androidのアクティビティやサービスはいつでも強制終了できます。
マイケル14年

1
情報をありがとう。私の質問によると開かれたソケットのURLを知っていますか?(デバイスから開かれ、通知データに使用されるGCMサーバーへの接続のURL)
-Sabeti

6

Android OSは現在、プッシュ通知WSにGCM(Google Cloud Messaging)を使用しています。ここでより良いアイデアを得ることができます。ライフサイクルを備えたフルプッシュ通知サービスのアーキテクチャの概要を示します。

それが役立つことを願っています。


Googleのサーバーに依存することなく、同様のことを行う方法はありますか?
マイケル14年

@Michael Amazon Cloudサービスを使用していますか?彼らは同等の概念を持っているようです。しかし、「方法」については、これは間違った場所です;)
Izzy

1

古い質問への遅い返信ですが、それを置く価値があります。

GCMは、2018年4月に廃止され、GoogleはGCMに似たFCMを使用することを推奨しています。

  1. 独自の登録またはサブスクリプションの再試行ロジックを作成する必要はありません
  2. Firebase Analyticsの洞察に基づいて特定の対象者に通知を送信できるWebコンソールを備えたサーバーレス通知ソリューションであるFirebase Notificationsを使用できます。
  3. GCMのコアインフラストラクチャがあります。
  4. 1つのメッセージで、最大4KBのペイロードをクライアントアプリに転送できます。

1
アプリの観点から見ると、FCMはGCMと類似しておらず、同一です。FCMはGCMの新しい名前です。
ロバート
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.