需求

用户可以随意发布帖子;

这个用户的关注者可以立即接收到这个发布的帖子信息。

其中第一个需求是很容易实现的,关键是第二个需求,需要用到数据实时功能去监听当前登录用户关注的作者是否发送新帖子。

解决方案

方案1

接到这个需求,很容易就想到以下方案,我称之为表监听方案,原理如下:

表监听方案

设计的表如下:

记录用户信息的表

user(username,password,attention_authors) 其中attention_authors为用户的关注者列表

记录帖子信息的表

post(title,content,author)

监听过程:

用户登录

监听post表,每次有更新时,则遍历当前登录用户的关注人列表,判断最新添加的帖子的作者是否在该列表中,如果存在则推送该帖子给当前登录用户,否则,不作处理。

我们可以看出,该方案中,只要一但出现有新帖子产生,那么该应用的所有用户都会接收到新帖子的信息,只是根据当前用户是否有关注该帖子的作者来决定是否显示,那么假如应用的用户量一大,每天的新帖子数很多时,那么每一个用户每天接受这些帖子就需要消耗大量的流量,而显然,这些流量中的信息绝大一部分是对用户无用的。因此,我们需要改变一下监听策略。

方案2

行监听方案,原理如下:

设计两张表:

user(username,password,attention_authors,last_post)

attention_authors 用户关注的作者的objectId列表,该字段为Array类型

last_post用户发的最后一篇帖子的objectId

post(title,content,author)

整个逻辑分为两个方面 :

1.发post

更新post表,添加一条数据,并读取其objectId

更新user表对应author==userName的记录,将1)中last_post置为objectId

2.收post

网络读取attention_authors字段,监听User表中的objectId中对应的所有行

当监听的行有更新时,读取lastID

利用lastID查找post表对应的行,读取这些行信息并且主动发现给当前登录用户

对比方案1,该方案最大的优点在于,只有当前登录用户关注的作者发表新帖子时,用户才会收到更新推送,确保接收的信息对于用户而言都是有用的。

总结

在移动客户端的开发过程中,在设计完方案后,还需要考虑网络的交互,由于目前的移动网络流量还是比较昂贵的,因此,要尽可能地减少网络数据交互。由于现在有新的任务,目前只实现了使用行更新的方案,有兴趣的朋友可以尝试实现表监听方案来对比一下,如果后面时间充裕的话我也会将这两种方案进行更加深入的对比。

代码下载猛击这里

更多学习怒击这里

bmob php修改数据,使用Bmob SDK实时数据功能的一次经历相关推荐

  1. 墨天轮沙龙 | 庚顿数据姚羽:实时数据技术赋能流程工业,保障业务连续性

    在8月24日举办的[墨天轮数据库沙龙第九期-工业实时数据库专场]中,庚顿数据董事长兼总经理 姚羽分享了<实时数据技术赋能流程工业,保障业务连续性,强化工业化AI基础设施>主题演讲,本文为整 ...

  2. Tech Talk 活动预告|构建流式数据湖,让实时数据“水到渠成”

    从 TB 到 PB 到 EB...... 过去十年,数据量以惊人的速度增长. 据 IDC 发布<数据时代 2025>报告显示,2025 全球每年产生的数据将从 2018 年的 33ZB 增 ...

  3. python数据爬取疫情实时数据

    jupyter笔记本 交互性强,可以代码块执行 一.数据爬取 网站:实时更新:新冠肺炎疫情最新动态 1. 导入所需库 #导入库 import time import json import reque ...

  4. 股票实时数据 python_Tushare 获取股票实时数据

    Tushare 获取股票实时数据 自己实现了一个能获取股票实时交易数据的脚本,功能是每3秒钟获取当前大盘涨跌,和自己添加股票的价格和涨跌幅 原理是通过获取Tushare 平台提供的api,来获取股票数 ...

  5. 思迈特软件Smartbi:数据大屏显示实时数据解决方案

    ​大数据时代 ,数据 是有价值 的"黄金 ",但是 数据 是不会 告诉你 ,那里 存在 价值 ,我们可以通过 大屏显示来直观 的了解 数据 中隐含 的价值 . 大屏显示是什么?顾名 ...

  6. 网页数据抓取-网页实时数据抓取软件

    网页数据抓取,随着社会的发展,互联网的普及,不管是企业还是个人都意识到数据的重要性.今天给大家分享一款免费的网页数据抓取软件.只要点点鼠标就能轻松采集你想要的内容不管是导出还是自动发布都支持!详细参考 ...

  7. 纳米数据,足球篮球实时数据比分,体育赛事比分接口代码,实时数据推送演示

    纳米数据采集了近 20 年内全世界的比赛实况,运用大数据人工智能技术,建立了一个囊括全世界超过三万支球队.三十五万多场比赛及百亿条数据的数据库,在此基础上建立了超过 100 个满足各个场景需求的深度数 ...

  8. python读取大智慧数据_读取大智慧实时数据

    kalummark8 2011-7-17 21:26 经过研究你之前的方法,现在这个问题解决了,但另一个问题又出来,应该是关系到数据类型的问题,setcode(600033) //关于这里输入的代码, ...

  9. Confluent Platform: ksqlDB 实时数据 ETL

    文章目录 1, 操作说明 a, connector 故障排查 b, 创建.查看已加载的连接器 (rest api) c, 指定connector 转换器 d, 查看,创建,删除 schema (sou ...

  10. Kafka实时数据即席查询应用与实践

    作者:vivo 互联网搜索团队- Deng Jie Kafka中的实时数据是以Topic的概念进行分类存储,而Topic的数据是有一定时效性的,比如保存24小时.36小时.48小时等.而在定位一些实时 ...

最新文章

  1. 吴恩达机器学习笔记21-正则化线性回归(Regularized Linear Regression)
  2. Quartz-TriggerListener解读
  3. 下拉框的value值怎么设置为变量_自绘制HT For Web ComboBox下拉框组件
  4. Android开发之虹软人脸识别活体检测基本步骤
  5. hornetq_Spring 3 HornetQ 2.1集成教程
  6. 6.11python 作业
  7. Segment-based Disparity Refinement with Occlusion Handling for Stereo Matching翻译和理解
  8. Servlet期末复习笔记3
  9. 多个注解可以合并成一个,包括自定义注解
  10. 小米 samba linux,U-BOOT移植准备之(一)Samba服务器
  11. 编一程序,将两个字符串连接起来,不要用strcat函数。C语言
  12. java抽奖系统的设计参考文献,抽奖系统的设计与实现论文范文论文
  13. FPGA-DDRx的VTT电源设计要点
  14. Delphi 获取系统时间分隔符
  15. 每天过得很焦虑怎么办?尤其是职场焦虑。
  16. 童年记忆中的优良环境
  17. pythonpost请求修改编码格式_Python请求编码POST d
  18. 【MySQL异常】Row size too large (> 1982). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNA
  19. java毕业生设计在线学习辅导与答疑系统计算机源码+系统+mysql+调试部署+lw
  20. 基金年华收益率计算方法

热门文章

  1. Chrome 52 将支持 ES7:Canary 通道已上线
  2. C++之priority_queue
  3. JSPServlet相关
  4. 去除vss源代码管理
  5. 使用安全json parser防止json注入
  6. JAVA实现中点画线_Java 实现中点法画线
  7. html语言怎么那么难用,js为什么那么难
  8. mysql数据库封装类_基于mysqli封装的数据库类
  9. 自媒体各大平台收益对比_自媒体推广平台都有哪些?
  10. 通过数据,从键盘录入学生考试科目数,然后依次录入学的每一科分数.使用数组存储学生分数.然后输出总分,平均分,简单易理解