需求html
使用Bmob iOS SDK中的数据实时功能(http://docs.bmob.cn/ios/developdoc/index.html?menukey=develop_doc&...)完成如下功能:ios
其中第一个需求是很容易实现的,关键是第二个需求,须要用到数据实时功能去监听当前登陆用户关注的做者是否发送新帖子。网络
解决方案post
接到这个需求,很容易就想到如下方案,我称之为表监听方案,原理以下:.net
表监听方案
设计的表以下:
记录用户信息的表
user(username,password,attention_authors) 其中attention_authors为用户的关注者列表设计
记录帖子信息的表
post(title,content,author)code
监听过程:htm
咱们能够看出,该方案中,只要一但出现有新帖子产生,那么该应用的全部用户都会接收到新帖子的信息,只是根据当前用户是否有关注该帖子的做者来决定是否显示,那么假如应用的用户量一大,天天的新帖子数不少时,那么每个用户天天接受这些帖子就须要消耗大量的流量,而显然,这些流量中的信息绝大一部分是对用户无用的。所以,咱们须要改变一下监听策略。pdo
行监听方案,原理以下:开发
设计两张表:
user(username,password,attention_authors,last_post)
attention_authors 用户关注的做者的objectId列表,该字段为Array类型
last_post用户发的最后一篇帖子的objectId
post(title,content,author)
整个逻辑分为两个方面 :
1.发post
2.收post
对比方案1,该方案最大的优势在于,只有当前登陆用户关注的做者发表新帖子时,用户才会收到更新推送,确保接收的信息对于用户而言都是有用的。
总结
在移动客户端的开发过程当中,在设计完方案后,还须要考虑网络的交互,因为目前的移动网络流量仍是比较昂贵的,所以,要尽量地减小网络数据交互。因为如今有新的任务,目前只实现了使用行更新的方案,有兴趣的朋友能够尝试实现表监听方案来对比一下,若是后面时间充裕的话我也会将这两种方案进行更加深刻的对比。
代码连接:[http://download.csdn.net/detail/linmaofuyuanzhang/8528065][2]