2011-07-06 23 views
2

我知道有些應用程序需要定期檢查服務器,但爲什麼服務器不讓移動設備知道何時需要更新。爲什麼移動設備必須定期檢查服務器的更新?

例如,假設您在Gmail中收到一封電子郵件。就目前而言,收到電子郵件和通知您的設備之間可能會有延遲。我認爲這與等待設備檢查gmail服務器有關,在此時它會看到新的電子郵件並通知用戶。對我來說更有意義的是,當gmail服務器收到一封電子郵件時,它應該ping所有註冊的設備(或者創建者想要實現它),讓他們知道是時候更新了。通過這種方式,通知將被同步,並且移動設備可以通過不必定期檢查服務器來節省電池。

+0

假設您正在編寫一個應用程序以從第三方API獲取數據。在這種情況下,實施推進是非常困難的。應用程序用戶必須註冊到您的服務器,並且您的服務器必須跟蹤哪些數據已發送給哪個用戶,以便在數據更改時通知用戶。或者你可以在應用程序中定期更新並且沒有你自己的任何服務器。 –

回答

2

您所描述的內容稱爲「服務器推送」。一些移動應用程序使用服務器推送。而且Google實際上已經有了一項技術來實現這個更容易實現的技術,名爲「雲到設備消息傳遞」(C2DM)。它通過讓服務器通過谷歌C2DM服務器發送一條微小的消息到設備上運行的應用程序,通知其更新時間。然後設備從原始服務器(不是來自C2DM)檢索實際更新。

它的好東西。它允許監聽C2DM的服務管理喚醒電話和一切。缺點是,應用程序的用戶需要一個谷歌賬戶。對於android用戶來說,這並不是真正的缺點。

0

除了他們在某些情況下。在我的iPod上的「設置」的「郵件,通訊錄,日曆」部分,有一個標籤爲「獲取新數據」的子菜單,其中包含一個用於讓郵件服務器或將數據「推送」至iPod的選項。可以設置時間表的Fetch方面適用於Push關閉或您與不支持推送的應用程序同步的情況。

0

Android就是這麼做的。它向設備推送通知,並且該API也向第三方開發者開放,因此他們可以將通知推送給用戶。

0

那東西很難知道移動設備的地址在任何特定的時間,IP地址是動態的,在服務器上地址更加穩定,所以設備知道它總是會在google找到谷歌但谷歌沒有真正的方法知道在哪裏找到該設備,它不知道在哪裏可以ping通。

這就是push進來的地方,有不同的實現,但我認爲他們的工作方式是讓設備保持與服務器的連接,並在其丟失時重新建立連接。 請參閱http://en.wikipedia.org/wiki/Push_technology

這當然是很難實施和維護,然後簡單的客戶端拉。

相關問題