作者微信 bishe2022

代码功能演示视频在页面下方,请先观看;如需定制开发,联系页面右侧客服
史上最全解析Android消息推送解决方案

Custom Tab

944365-207a738cb165a2da.png

前言


目录

e72747568362c4c7.png

目录


1.定义

在用户未打开App时,App主动向用户推送服务器最新消息。如下图:

65bb38969df7.png

消息推送的本质是:App将服务器更新的信息推送给用户

2.作用

作为开发者,不要有需求就接,应该多思考、多理解用户 / 功能的使用场景,有助于我们更好地去选择合适的开发方式


3.储备知识

3.1 操作系统有自身的消息推送功能(系统级别)

将在下面详细描述

3.2 推送的本质与原理

96860b8.png

示意图


4. 解决方案

经总结,Android中实现消息推送的有7种主流解决方案,接下来将一一介绍。

4.1 C2DM

Android系统级别的消息推送服务-Google出品

30b5.png

C2DM原理

4.2 轮询

4.3 SMS

4.4 MQTT协议

0474.png

MQTT协议原理

更多关于MQTT协议:

  1. 项目实例源

  2. 一个采用PHP书写的服务器端

  3. Jar包下载地址,并加入自己的Android应用程序中。

  4. 拓展:RSMB是从MQTT协议引申出来的另外一种解决方案:简单的MQTT代理,详情请点击

4.5 XMPP协议

其他三种:

  • XMPP的核心:XML流传输协议(在网络上分片断发送XML的流协议),也是即时通讯指令的传递基础,即XMPP用TCP传的是XML流

  1. 与即时通讯相关的指令,在以前要么用2进制的形式发送(比如QQ),要么用纯文本指令加空格加参数加换行符的方式发送(比如MSN)。

  2. XMPP传输的即时通讯指令的逻辑与以往相仿,只是协议的形式变成了XML格式的纯文本。

服务器

  1. 监听客户端连接,并直接与客户端应用程序通信(客户端信息记录)

  2. 与其他 XMPP 服务器通信;

网关:与异构即时通信系统进行通信

异构系统包括SMS(短信),MSN,ICQ等

通信能够在这三者的任意两个之间双向发生。

原理流程

21450.png

原理流程

更多关于XMPP协议更加详细请点击

4.6 使用第三方平台

现今主流的推送平台分为

  1. 手机厂商类:小米推送、华为推送。

  2. 第三方平台类:友盟推送、极光推送、云巴(基于MQTT)

  3. BAT大厂的平台推送:阿里云移动推送、腾讯信鸽推送、百度云推送

具体各推送平台的优缺点请看我写的文章:Android推送:第三方消息推送平台详细解析

4.7 自己搭建

如果你的产品对于消息推送具备较高的功能和性能要求,同时对安全性要求非常高的话,自己搭建可能是最好的方式,但这种方式无疑成本是最高的。

5. 总结




转载自:https://www.jianshu.com/p/b61a49e0279f

Home