我需要在我的iOS應用中實現項目的實時隊列。 (後來也是Android)。在iOS客戶端中實現實時隊列
主要用例是讓用戶看到所有用戶的實時共享隊列。可能有很多隊列,但目前用戶一次只能看到一個隊列。 如果一個用戶從隊列中刪除項目,則查看同一隊列的iOS應用的所有其他用戶都應實時查看隊列更新。如果我的服務器檢測到某個新項目已添加到特定隊列中,則應該將其推送給實時查看該隊列的所有其他客戶端。
實現這種機制的最佳方式是什麼?目前只支持iOS,但它應該是一個簡單的解決方案,以便稍後添加其他移動平臺不會是一件麻煩事。
我想有兩個主要選擇:
- 使用Web技術(JS & HTML5)(基本上呈現一個UIWebView)
- 生方式做了 - 使用蘋果的推送通知或其他永久性連接選項。 (推送通知更好,如果我希望能夠提醒用戶隊列更改,即使應用程序處於後臺或上帝禁止關閉)
很明顯,我也可以選擇混合解決方案。
我熟悉以下PUB-SUB解決方案:
1.Xmpp (extension to Xmpp would be more accurate)
2.MQTT
3.Pubnub - http://www.pubnub.com/ (pretty new out there)
4. I read about Linked-in Kafka, but that seems way more advance and complicated to ny current needs.
我很好奇聽到的話,任何人的任何論文或其他人的試驗,可以推薦一個,並說,如果本機或網絡是首選路徑。 所選擇的解決方案必須是易於使用且易於實施的產品,即使其成本有限。 (服務器端主要是用PHP編寫的,但node.js中是一個選項,以及)
感謝
您的第一選擇是將隊列放在服務器上並讓它在那裏訪問,或者嘗試在所有用戶之間保持客戶端隊列的同步。部分決定取決於更新發生的頻率以及同步必須如何瞬時和精確。 – 2012-03-23 11:21:37
隊列將由服務器維護,我想不出任何充分的理由,爲什麼我的iOS客戶端應負責將隊列狀態傳遞給所有連接並正在查看隊列的用戶,以及處理隊列狀態。除非我誤解了你所說的內容,我建議的是,服務器應該將所有訂閱者的隊列變化推送給他們。 – Idan 2012-03-23 11:45:02
然後,您應該只需按一下「已更改」通知,讓您的客戶回來並刷新隊列的「視圖」。你也許可以推一個限定詞來「改變」,這樣客戶就知道特定的改變是否對他們的需求是「重要的」,但這就跟我一樣。處理推送的三種方法是推送通知(可能是最佳選擇),打開「獲取」和輪詢。 – 2012-03-23 15:45:00