2013-01-22 217 views
0

這通常是一個常見問題。實時從服務器獲取消息

我不知道郵件應用程序如何實現電子郵件接收功能? 我需要使用我的Web服務實現兩個設備之間的簡單同步(例如)。

想象一個待辦事項列表的應用程序。

是否有可能實現這樣的功能:device1創建一個條目,然後發送消息到webservice,webservice通知device2發生了更改並且device2調整其數據並顯示該條目?

回答

1

基本上有2種方式:

  1. 投票,每個設備要求Web服務器更改每N分鐘:新的待辦事項,刪除待辦事項,改變待辦事項,...然後每個設備都會調整。投票的頻率取決於您正在查找的實時級別。它可以每秒1次或每12小時或更多次。
  2. 實現一種BOSH protocol:設備打開到服務器的連接。服務器保持打開狀態,直到發送新消息發送到設備或連接超時。在這種情況下,設備會重新打開它。

選項1對於您的待辦事項應用程序更好,因爲您不需要實時準確性。選項2更適合您不想等待消息的聊天應用程序。

+0

我在其他應用程序中使用輪詢。我想知道是否有更優雅的方式。詢問Web服務器需要一些流量,第二種方法值得一看。它是否涵蓋套接字編程? – alex

+0

你也可以想象你的設備之間的對等機制。它主要取決於你的應用程序。 –

2

在iOS上,您可以輕鬆實現推送通知。 只要服務器檢測到設備2需要知道服務器的更改,就會向該設備發送推送通知。

在用戶查看通知後,應用程序應該自行更新它,在進入前臺時讓應用程序自行更新它也是一個好主意。

使用推送通知而不是輪詢來執行此操作的原因是,如果您的應用程序位於後臺,則只能繼續運行最多10分鐘的進程。您可以通過將背景模式添加到您的應用程序來解決此問題,例如VOIP,音頻或位置。但是,如果你的應用不屬於這些類別,蘋果可能會拒絕你的應用。

通過推送通知,即使您的應用程序未運行或在後臺運行,設備也會收到通知。

相關問題