デバイスがサーバーをポーリングする必要なく、iOS の「プッシュ」通知を特定のデバイスに配信するにはどうすればよいですか?
たとえば、Facebook で新しいメッセージを受け取ったとします。Facebook は、私のデバイスがそのような通知を受信する必要があることを Apple に通知します。しかし、Apple はどのデバイス/IP にメッセージをプッシュするかをどうやって知るのでしょうか?
デバイスがサーバーをポーリングする必要なく、iOS の「プッシュ」通知を特定のデバイスに配信するにはどうすればよいですか?
たとえば、Facebook で新しいメッセージを受け取ったとします。Facebook は、私のデバイスがそのような通知を受信する必要があることを Apple に通知します。しかし、Apple はどのデバイス/IP にメッセージをプッシュするかをどうやって知るのでしょうか?
各デバイスは、独自の一意のデバイス トークンを使用してデータで更新できます。この写真はすべてを説明しています。.
コメントを入れるには多すぎました。
ドキュメントから。
Apple プッシュ通知サービス (APNs) は、プッシュ通知を受信するようにアプリケーションが登録されているデバイスにプッシュ通知を伝達します。各デバイスは、サービスとの認定および暗号化された IP 接続を確立し、この永続的な接続を介して通知を受信します。プロバイダーは、クライアント アプリケーション向けの受信データを監視しながら、永続的で安全なチャネルを介して APN に接続します。アプリケーションの新しいデータが到着すると、プロバイダーは通知を準備し、チャネルを介して APNs に送信します。APNs は通知をターゲット デバイスにプッシュします。
詳細と使用方法と設定方法については、ドキュメントを読むことをお勧めします。それはすべてそこにあります。
デバイスは、プッシュ通知のためにサーバーをポーリングし続けません。
簡単にするために、iPhone がインターネットに接続されているとします。インターネットに接続すると、iPhone は Apple プッシュ通知サーバーへの接続を確立します。この接続はオープン接続です。つまり、データがサーバーに到着した瞬間にサーバーから iPhone にデータをスローできます。
Apple はプッシュ通知に HTTP プロトコルを使用していませんが、HTTP プロトコルを理解していれば、ほぼ同様の方法論です。
http://en.wikipedia.org/wiki/Push_technology#HTTP_server_push
この記事には、プッシュ通知の非常に優れた説明があります。
iOS では、アプリはバックグラウンドで多くのことを行うことができません。アプリは限られた一連のアクティビティのみを実行できるため、バッテリー寿命が節約されます。
しかし、興味深いことが起こったときに、ユーザーが現在アプリを使用していなくても、そのことをユーザーに知らせたい場合はどうすればよいでしょうか?