2015-03-31 73 views
0

所以這是一個比編碼問題更多的方法問題。爲了選擇最佳路線,我想在開始編碼之前先詢問一下。我有一個消息應用程序。當應用程序啓動時,我在後臺查詢來自後端的所有消息,其中current_user_id等於recipient_id。現在我擁有了用戶需要查看的所有消息,因此我將它們本地存儲到sqlite數據庫中。構建後端查詢

很好,但用戶何時收到新消息呢?我怎樣才能構造一個查詢來接收那些無需再次查詢整個表?另外我怎樣才能把它作爲一個持續的過程?電話總是在後臺請求來自後端的更新信息嗎?

謝謝。我非常感謝你的幫助。我目前正在使用iOS和SQLite。另外我的後端是AWS node.js.

+0

如果這是一個實時消息應用程序,那麼您將需要某種套接字連接(至少在應用程序打開時)而不是輪詢。至於檢查你是否有最新的消息,也許保存最新消息的時間戳,並只查詢更新的消息? – gregnr 2015-03-31 18:11:57

+0

好的,這真的很有幫助。謝謝 – ian 2015-03-31 19:02:36

回答

0

看起來您的目標是最終通過網絡同步兩個數據源之間的數據,並限制客戶端在合理的時間內進行更新。您可以在push vs pull architecture之間進行設計選擇。

推送架構讓服務器在事件發生時將數據推送到客戶端。

拉架構讓設備週期性地輪詢服務器的變化。這可以通過定時事件來實現。

也有混合方法。

各有其優點和缺點,因爲有些需要不斷的輪詢。其他需要不斷的基於連接的協議,這提出了更多的擴展挑戰