一、传统APP架构下的信息传送

APP主动向服务器请求数据,服务器被动的提供数据。

步骤如下:

然而,如果此时服务器又有了新的新闻,在用户没有主动刷新的情况下,服务器是不会主动推送给用户的。
推送解决了这个困境,它让服务器主动连接APP,通知APP有了新的新闻,可以再请求。收到推送的APP(即使已关闭)又去服务器请求最新的新闻,用户就能看到了。
二、实现推送的方法
实现一个推送系统需要服务器端和终端的配合。
方法一:轮询
即不停地向服务器发送请求(既然不知道什么时候会发生,那就一遍一遍的问吧)。
缺点:手机消耗电量、流量大;服务器也要处理大量的请求,压力大。

方法二:APP和服务器建立长时间连接通道
通过这个通道,APP可以向服务器请求数据,服务器也可以向APP发送数据。
android系统中,如果APP被关闭,APP可以启动一个后台服务来维持通道继续运行。(ios的解决方法见下)
如何维护这个长时间连接的通道?
APP会每隔段时间向服务器报告自己还活着,服务器收到后,即可知道这个通道可以继续使用。(代价是增加电量消耗)
如果手机中装了多个带有推送功能的APP,如何解决多个通道的问题?
android解决方案:GCM(系统提供)、开发各自的专用通道(国内方法)
Android系统提供的 GCM 只能在 Android2.2 以上才能使用,3.0 以下必须要安装 Googleplay 并登陆了 Google 账号才能支持。而国内发行的手机大多是阉割掉了 google 服务的。
因此,对于 Android 系统来说,各家 app 只能开发自己的专用长连接通道了。然而这时候他们遇到了 app 的天敌:管家和卫士们。前文说了,app 想要及时收到服务器推送的消息,关键在于自己与服务器的长连接通道不被关闭,也就是自己的后台服务可以一直在后台运行,而管家和卫士们的一键清理功能就是专治这种 “毒瘤” 的。道高一尺魔高一丈,app 在与管家和斗士们的长期斗争中,总结了一系列躲避被清理掉的方法,什么定时自启能力、什么相互唤醒、什么前台进程等等。
IOS解决方案:APNS
ios开通了一条系统级别的长连接通道,通道的一端是手机的所有APP,另一端是苹果的服务器。
APP的服务器如果有消息需要推送,先把消息发送到苹果服务器上,再利用苹果的服务器通过长连接通道发送到用户手机,最后通知具体的APP。这样,即使安装了100款APP,也只需要向一条通道里发送推送。

APP推送系统工作原理相关推荐

  1. 消息推送系统——(一)概念与原理

    这里我们从系统结构的层面来看消息推送系统(Push Server)的基本原理. 首先需要了解几个基本的概念: HTTP长连接 翻译自http keep-alive connection和http pe ...

  2. 消息推送生命周期_一套完整的APP推送体系方案|附思维导图

    写这篇文章的初衷是前几天在脉脉上看到一个问题:线上app push故障,该不该给用户发送补救推送信息? 联想到自己当初作为实习菜鸟也犯过类似的推送事故,好在补救处理尚可,最终结果不错.这次仔细看了问题 ...

  3. 无线测温在线监测系统工作原理与产品选型

     摘要:本文首先介绍了无线测温在线监测系统的基本工作原理以及软硬件组成,重点介绍了在线监测的无线测温技术特点.在此研究基础上,探讨了无线测温在线监测系统在实际工作场景中的应用案例,证明了其在温度检测方 ...

  4. 一文让你知道关于App推送那些事

    推送相关介绍 在用户未打开App时,服务端向用户推送服务器最新的消息数据,称为推送.消息推送在移动开发中用到的场景非常多,比如典电商类app的商品促销活动,资讯类的app的新闻推送等等.在实际开发中, ...

  5. 即时通讯开发如何构建一套移动端消息推送系统

    消息推送作为移动端 APP 运营中的一项关键技术,已经被越来越广泛的运用. 本文追溯了推送技术的发展历史,剖析了其核心原理,并对推送服务的关键技术进行深入剖析,围绕消息推送时产生的服务不稳定性,消息丢 ...

  6. 用 Celery 实现邮件推送系统

    2019独角兽企业重金招聘Python工程师标准>>> 系统需求 本文以Celery 实现分布式任务队列为基础,简述了一个邮件推送系统的模型. Celery 是 Distribute ...

  7. 重构 - 美股行情系统APP推送改造

    图片来源:pexels.com 作者:梁鑫(资深架构师,多年云原生,微服务架构经验,开源SIA系列产品owner) 前言 今年开始,由于工作内容调整.开始负责美股港股产品的研发.之前的两篇文章,重构 ...

  8. APP推送消息测试点分析

    APP推送消息测试点分析 1.虽然以前学测试的时候接触一点消息推送测试点,但是自己理解和掌握的测试点还不够深,由于工作需求,这两天深入了解和学了一下APP推送消息是什么,怎么测的问题 设计好的推送消息 ...

  9. 智能电表专用服务器,详细分解4种远程智能电表抄表系统工作原理

    现在的智能电表可以远程抄表已经没有什么稀奇的,对于从事这个行业的人对于它的工作原理再也熟悉不过了,但是对于大部分的电工还是有些不明白的.所以今天小编就来给大家详细的介绍远程智能电表抄表系统工作原理,希 ...

  10. 专访魅族资深架构师:关于实时推送系统的那点事

    [IT名人堂]专访魅族资深架构师:关于实时推送系统的那点事 http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=4193738& ...

最新文章

  1. 呼叫中心的服务水平管理
  2. MySql 基于C_API的数据库封装
  3. jquery 根据class名 赋值_jQuery简单用法!!!
  4. Leet Code OJ 235. Lowest Common Ancestor of a Binary Search Tree [Difficulty: Easy]
  5. keepalived实现haproxy高可用详解
  6. wpa_supplicant无线网络配置
  7. 现在市面上卖的贵州茅台镇原浆酒20元一瓶是什么酒?
  8. MySQL外键约束详解
  9. 【Hoxton.SR1版本】Spring Cloud Gateway之如何进行限流
  10. poj 2157 Maze(bfs)
  11. java素数(质数)计算
  12. python实现录音_python实现网页录音效果
  13. extmail如何登陆mysql_linux下ExtMail邮件使用及管理平台
  14. 欧姆字符的编码c语言,欧姆符号怎么打
  15. 又一批大学生毕业了,献上天津大学校园里的励志标语
  16. 搭建rtmp直播流服务之1:使用nginx搭建rtmp直播流服务器(nginx-rtmp模块的安装以及rtmp直播流配置)
  17. 【送书活动第一话】:送书伊始
  18. Python3爬取前程无忧数据分析工作并存储到MySQL
  19. 图像处理1--傅里叶变换(Fourier Transform )
  20. 洛谷——P1238 走迷宫

热门文章

  1. 3种方法设置和取消Excel文件的打开密码
  2. npm ETIMEDOUT 问题
  3. 620集成显卡和mx250_英伟达mx250和英特尔uhd620显卡那个好?
  4. JS 中提交表单Form方法
  5. BGP——基本概念3(路由聚合)
  6. 人工智能与大数据的区别
  7. PRCV2018|美图短视频实时分类挑战赛冠军解决方案介绍
  8. 墨卡托投影原理及瓦片公式推导
  9. 罗翔老师转谈记录,不同认知出发//心之所向,素履以往,生如逆旅,一苇以航。
  10. python身份证号判断_Python实现身份证号码解析