2011-07-06 4 views
2

私は一部のアプリケーションがサーバーに対して定期的にチェックする必要があることを理解していますが、サーバーがモバイルデバイスに更新時期を知らせるのはなぜですか?モバイルデバイスが定期的にサーバのアップデートをチェックする必要があるのはなぜですか?

たとえば、Gmailで電子メールを受信したとします。今のところ、電子メールを受信して​​からデバイスに通知するまでに時間がかかることがあります。私はこれが、デバイスがGmailサーバーをチェックして、新しい電子メールを見て、ユーザーに通知するまで待つことと関係があると考えています。 Gmailサーバーが電子メールを受信すると、登録されているすべてのデバイスにping(または作成者が実装したいと思う)して、更新時期を知らせる必要があります。この方法で通知が同期され、モバイルデバイスは定期的にサーバーをチェックする必要がないため、バッテリを節約できます。

+0

サードパーティAPIからデータを取得するアプリケーションを作成しているとします。この場合、プッシュの実装ははるかに困難です。アプリケーションユーザーはサーバーに登録する必要があり、サーバーはデータがどのユーザーに送信されたかを追跡して、データが変更されたときにユーザーに通知する必要があります。または、あなたは自分のサーバーを持っていないアプリで定期的な更新を書くことができます。 –

答えて

2

説明していることを「サーバープッシュ」といいます。一部のモバイルアプリケーションはサーバープッシュを使用します。また、Googleは実際には、これを実装しやすくするための技術を「クラウドからデバイスへのメッセージング(C2DM)」という名前にしています。これは、サーバーがグーグルC2DMサーバーを介して、デバイス上で動作しているアプリケーションに小さなメッセージを送信し、更新のための時間を通知することによって機能します。そして、デバイスは元のサーバーから実際の更新を取得します(C2DMではなく)。

その良いもの。それは、C2DM管理のためのリスニングサービスが電話機とすべてを起動させることを可能にする。欠点は、アプリケーションのユーザーがGoogleアカウントを必要としていることです。アンドロイドユーザーの場合、これは本当に不利なことではありません。

0

場合によっては例外があります。私のiPodの「設定」の「メール、連絡先、カレンダー」セクションに、「新しいデータを取り込む」というサブメニューがあります。これには、メールサーバーやデータをiPodに「プッシュ」するオプションが含まれています。スケジュールを設定できるフェッチ・アスペクトは、プッシュがオフの場合、またはプッシュをサポートしていないアプリケーションと同期している場合のものです。

0

これがAndroidの仕組みです。通知はデバイスにプッシュされ、APIはサードパーティの開発者にも公開されるため、ユーザーに通知を送信することができます。

0

特定の時間にモバイルデバイスのアドレスを知ることは難しいですが、IPアドレスは動的です。サーバー上ではアドレスがはるかに安定しているため、デバイスは常にGoogleでGoogleを見つけることができます.comしかし、Googleは、デバイスを見つける場所を知る実際の方法はありません、最初にどこでpingをするか分からないでしょう。

これはどこにプッシュが入っているのか、さまざまな実装がありますが、デバイスがサーバーとの接続を維持し、失われた場合にデバイスを再確立することによって機能すると思います。 を参照してください。http://en.wikipedia.org/wiki/Push_technology

これはもちろん、単純なクライアントのプルを実装して維持することはずっと困難です。

関連する問題