需求
使用bmob ios sdk中的資料實時功能(
完成以下功能:
使用者可以隨意發布帖子;
這個使用者的關注者可以立即接收到這個發布的帖子資訊。
其中第乙個需求是很容易實現的,關鍵是第二個需求,需要用到資料實時功能去監聽當前登入使用者關注的作者是否傳送新帖子。
解決方案
接到這個需求,很容易就想到以下方案,我稱之為表監聽方案,原理如下:
表監聽方案
設計的表如下:
記錄使用者資訊的表
user(username,password,attention_authors) 其中attention_authors為使用者的關注者列表
記錄帖子資訊的表
post(title,content,author)
監聽過程:
使用者登入
監聽post表,每次有更新時,則遍歷當前登入使用者的關注人列表,判斷最新新增的帖子的作者是否在該列表中,如果存在則推送該帖子給當前登入使用者,否則,不作處理。
我們可以看出,該方案中,只要一但出現有新帖子產生,那麼該應用的所有使用者都會接收到新帖子的資訊,只是根據當前使用者是否有關注該帖子的作者來決定是否顯示,那麼假如應用的使用者量一大,每天的新帖子數很多時,那麼每乙個使用者每天接受這些帖子就需要消耗大量的流量,而顯然,這些流量中的資訊絕大一部分是對使用者無用的。因此,我們需要改變一下監聽策略。
行監聽方案,原理如下:
設計兩張表:
user(username,password,attention_authors,last_post)
attention_authors 使用者關注的作者的objectid列表,該字段為array型別
last_post使用者發的最後一篇帖子的objectid
post(title,content,author)
整個邏輯分為兩個方面 :
1.發post
2.收post
對比方案1,該方案最大的優點在於,只有當前登入使用者關注的作者發表新帖子時,使用者才會收到更新推送,確保接收的資訊對於使用者而言都是有用的。
總結
在移動客戶端的開發過程中,在設計完方案後,還需要考慮網路的互動,由於目前的流動網路流量還是比較昂貴的,因此,要盡可能地減少網路資料互動。由於現在有新的任務,目前只實現了使用行更新的方案,有興趣的朋友可以嘗試實現表監聽方案來對比一下,如果後面時間充裕的話我也會將這兩種方案進行更加深入的對比。
實時資料整合
企業應用整合 面向服務的體系結構 soa 目前應該是乙個很受歡迎的名詞,中介軟體技術人員幾乎到了言必稱soa的程度,資料整合當然也不例外,在oracle openworld2008大會上,就推出了一堆資料整合的專場演講,其中和soa結合最緊密的就是實時資料整合 real time data inte...
實時採集mysql mysql實時資料採集
0 集群環境介紹 10.20.201.51 namenode resourcemanager hmaster spark 10.20.201.52 namenode resourcemanager hmaster spark 10.20.201.53 datanode nodemanager hre...
遠端實時資料傳送
2006 05 06 00 03 19 摘要 介紹了以微控制器作為下位機採集電力引數資料,並控制數據機自動撥號,與上位機進行遠端實時資料傳送的方法,並給出了硬體電路圖和軟體流程圖。我國中大型石油化工企業大都採用小電流接地系統來供電,電力系統較為龐大。這類系統一般擁有幾座乃至十幾座35kv級的總降壓站...