关于推送的一些知识(1) 您所在的位置:网站首页 数据推送是什么意思啊 关于推送的一些知识(1)

关于推送的一些知识(1)

2024-07-12 00:42| 来源: 网络整理| 查看: 265

今天读了张铁蕾的文章,讲的推送的知识,有些收获,记录下来。

Android推送可以分成两类:端内推送和端外推送(端指的客户端)。

端内推送:APP在前台运行时,这时候的推送是端内推送。

· 端内推送一般是走App自己实现的一套推送系统:推送服务器是自己的,客户端维护一条长连接连到自己的推送服务器,不依赖任何第三方的推送系统。

· 当App从前台退到后台,在短时间内App未被系统杀死前,App自己的长连接仍然有效。这时的推送可以仍然走App自己的推送系统。所谓的“Android进程保活”,就是为了尽量延长这段在后台存活的时间。

端外推送:当App在后台运行足够长的时间后,App进程由于被清理或者其它原因,App自己的长连接断开。这时的推送称为端外推送。

· 这时候的推送可以通过某个第三方推送平台实现。

从这个过程来看,大厂的App的推送策略可以概括为:优先使用自己的推送,实在不行再走第三方推送平台。

为什么这样呢? 因为自己的推送系统更快、更有保障。道理很简单,自己的推送,只需要对自己的APP负责,基本上是实时的。而第三方的推送往往向很多APP服务,效率相对差些(也不是绝对,也有个推送的高峰期和低潮期,以及网络变化如WiFi,流量等的影响);而且自己的推送维护起来也方便,所以有保障。

端内推送涉及的知识点:

1.采用什么协议?XMPP还是MQTT还是自定义二进制协议?是否像微信一样,需要推送二进制数据(比如短语音和缩略图数据)? 2.如何保证后台长连接不死?涉及到“保活”的问题。 3.如何做才能真正保证不丢数据?涉及到系统的方方面面,比如消息的确认,客户端和服务器的数据同步,客户端的数据存储的事务保证,后台消息队列如何设计保证不丢数据。如果是IM(Instant Messaging:实时通讯),离线数据如何处理? 4.长连接的Keep Alive和连接状态的检测与维护。比如XMPP相当于一个永远解析不完的XML流,使用一个空格作为Keep Alive消息。 5.长连接的安全性。验证以及加密。

端外推送涉及的知识点: 上面的几点都暂时不需要考虑了(第三方推送平台的优点)。需要考虑的是怎么集成使用,照着官方文档做就好。

现在市面上有哪些第三方推送? · 小米推送 · 华为推送 · 友盟推送 · 极光推送 · 个推 · 阿里云移动推送 · 腾讯信鸽推送 · 百度云推送

大体可以分为三大类: · 大手机厂商的推送:小米推送、华为推送。 · 专业的第三方推送:友盟推送、个推、极光推送 · BAT大厂的平台推送:阿里云移动推送、腾讯信鸽推送、百度云推送。

第一类:市面上手机占比较高的手机厂商的推送。他们的推送服务在他们自己生产的手机上属于系统级别的服务,理论上来说,手机系统对他们自家的推送限制最小。也就是说,在系统层面,优先让你的推送成功完成。而有可能就在系统上限制其他的一些推送(谁知道呢)。这些推送可以在其他手机上使用,只不过不是系统级别的,受限制相对多一些。

第二类:专业的第三方推送。他们的优势是什么呢?他们“保活”和“互拉”的能力很强大。举个例子,假设你接入了友盟,今日头条也接入了友盟。你的App在后台被杀死了。这时用户启动了今日头条,那么推送系统也就会通过共享的推送通道顺便把你推送消息送达到手机上,然后还可能把你的进程也唤醒(被“保活”了)。

第三类:看起来并没有什么优势。各家的“全家桶”采用的“保活”阵营和推送通道,跟他们开放出来的是两码事。比如,你不要以为用了腾讯信鸽推送,就能占上微信的光。这些我没用过,待研究。

总结起来,推送方案的选择是:集合多种推送。 1. 优先自己的端内推送; 2. 端外推送优先使用市面上手机占比很高的手机厂商的推送。小米手机就用小米推送,华为手机就用华为推送等。 3. 再之后就是专业的第三方推送,选一个就好,哪个最好好像没个定论。

使用通知栏消息还是透传消息?

通常第三方推送平台都支持两种推送消息类型:通知栏消息和透传消息。

通知栏消息,在被送达用户的设备后,直接以系统通知的形式展示给用户。它不会继续被传递到App。

而透传消息,在被送达用户的设备后,还会继续路由到App,通过回调App的某个BroadcastReceiver的形式将消息传递到App内部。然后由App决定如何处理和显示这个消息。这又分为2种:

·用户无感知的透传,如:更新相关信息,在主界面中相关栏位用红点标识进行弱提醒,推送一条命令用来检测用户是否有登录等。通知栏消息虽然方便的提醒用户,但也在一定程度上给用户带来了打扰,用户无感知的消息推送有时效果会更好。

·用户有感知的透传:把透传消息处理成通知栏展示出来,提醒用户方便点击查看相关信息(如个人帐单信息),直接打开应用或跳转到指定的应用界面中(根据透传消息的相关参数来判断跳转到哪一个指定的界面,相关参数传递要打开的界面的类名或Intent即可)等。对于开发者,处理成通知栏的相关事件也是可以捕获的,如通知栏的展示、点击等事件都可以进行捕获,以方便进行后续的操作。

透传消息在整个消息传递过程中比通知栏消息多了一步,因此就增加一些被系统限制的概率。所以说,通知栏消息比透传消息应该能提供更好的送达率。

所以,如果有端内推送,优先通知栏消息;如果只集成了第三方推送,就只能使用透传消息。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有