美文网首页
移动端消息推送机制

移动端消息推送机制

作者: 小铭铭_ | 来源:发表于2018-10-18 14:30 被阅读0次

正文字数 | 1775 

预计阅读时间 | 5分钟 

                                                                                                               序

公司内部的后台APP需要加一个消息推送的功能。作为一枚产品小白,以为只要把推送场景、文案、目标角色写清楚就行了。

然而在需求评审的时候,开发问我安卓的手机怎么搞?也是一脸懵逼!

于是上网搜索,才明白移动端消息推送机制的原理。于是想着把自己了解到的信息总结下来,一是有利于自己吸收,二是分享出来让大家也看一下,不对的地方欢迎指正!当然分析都是比较表层的,专业术语和交互技术人员更清楚。

                                                                                                                壹

消息推送分为两种:短连接和长连接。也就是客户端与服务器之间的数据传输交互方式不同。

短连接又称为轮询,方式为pull。客户端定时向服务器发送请求,询问是否有数据,时间频次可以设置。这种的方式更适合web端使用,用在APP有很多弊端:

● 耗内存、耗电量。如果手机上的APP都采用这种方式获取数据,它们必须一直保持后台运行。而且隔三差五自动pull一次,手机卡顿将非常明显,一不小心就变成暖手宝,电量很快被耗尽。

 ● 因为是定时pull,所以时效性差。特别是通讯、社交类的产品,无法实时收到消息。在下一次pull的时候,又会一次性收到很多消息。

 ● 对于服务器压力很大,APP都在同一时间发出请求,服务器处理性能会变差。

所以现在移动端的产品很少使用这种方式。

                                                                                                                  贰

长连接方式为push,服务器主动向客户端发送数据。市面上移动端产品基本采用这种方式,但是ios和android系统有很大的区别。

ios系统的消息推送机制如下图:

可以看出,不论手机上安装了多少个APP,也只有一条长连接,消息最终由苹果服务器进行内置分发。即使用户关闭了APP,依然可以收到消息推送。而且苹果是假后台,虽然APP在后台没有关闭,也是处于不运行状态,只不过可以快速启动。所以苹果的系统操作更流畅,消息推送更便捷。

android系统的消息推送就相对复杂。

原本android和ios使用同样的长连接方式,但是谷歌服务器在内地无法使用,所以。。。

目前大部分的产品选择使用第三方服务平台,因为成本低、到达率高。主流有极光、友盟、个推;BAT大厂的腾讯信鸽、阿里云、百度云;手机制造商小米、华为也开发了自己专属的推送机制。使用手机制造商的推送有什么好处呢?因为自家的手机系统是不会杀死自己的推送,打个比方如果某APP使用的是小米推送,小米手机用户就算关闭了APP,但依然可以收到消息推送。所以像BAT大厂有自己的推送机制,但是产品消息推送依然会选择小米。

市面上的手机品牌太多,没有哪家平台能覆盖到所有的机型。我使用的是友盟,目前支持小米、华为、魅族,只有使用这三个品牌的用户才能收到我们的APP消息推送。

一部手机有那么多的APP,大家可能选择不同的第三方平台,同一个APP也可以使用多个平台混合推送(成本较高)。所以android系统可能存在多条长连接,这是跟ios的第一大区别。

由上图可以看出,如果APP被关闭是收不到数据的,但是ios的可以,这是第二大区别。所以早些年,APP们都想方设法偷偷在后台启动,自从手机管家出现后,很快被发现杀死,可谓一直都在斗智斗勇!

使用第三方平台的好处是,假设用户手机里面有5个APP都使用友盟,只要其中一个APP处于运行状态,另外4个就算被关闭也能收到消息。所以选择一个大家都使用的平台,共享一条渠道可以相互取暖。

对于微信、QQ这种超大体量的APP,应该早就被各家手机厂商设置成白名单了,不管是否关闭,接收消息都畅通无阻!

发送数据要经过第三方平台的服务器,在安全这方面可能会存在。。。平台应该掌握了很多产品的数据。所以平台推送服务虽然免费,但可以发展增值服务,数据统计、分析、风控、行业报告等等,实现商业模式变现。

                                                                                                                     叁

还有一些其他的方法可以实现移动端消息推送:

 ● 自己搭建渠道,但是时间、人力、物力、资源成本太高,一般的公司不可能实现。

 ● SMS拦截短信,服务器有新数据时,先发送一条短信到用户的手机,移动端拦截短信,如果发现是正常短信就放行,如果是特殊短信就主动连接服务器pull数据。这样做短信通讯费用成本比较高。

 ● 还有一些MQTT、XMPP协议等方法,太专业我看不懂,有兴趣的可以搜搜看。

                                                                                                                     肆

不论选择什么方法进行消息推送,最重要的还是尽量少打扰用户。

 ● 重要事件、状态变更、即时通讯、涉及到账户安全,需要第一时间推送告知。

 ● 其他类型消息可选择APP内部推送。

 ● 电商打折促销、老用户提升活跃度的推送,也需要把握好时间段,早9点至晚9点之间比较好。

频繁推送不仅会让用户反感,各种消息混在一起,可能会导致用户忽略重要内容,从而造成损失。

更严重的是用户手动关闭消息推送,或者直接卸载,用户渐渐流失。还怎么赚钱哟。。。

                                                                                                                    - 完 -

相关文章

  • 移动端消息推送机制

    正文字数 | 1775 预计阅读时间 | 5分钟 序 公司内部的后台APP需要加一个消息推送的功能。作为一枚产品...

  • 移动端消息推送方案

    对目前Android平台上最主流的几种消息推送方案进行分析和对比,比较客观地反映出这些推送方案的优缺点,帮助大家选...

  • iOS开发 之 消息推送技术研究

    目录 引言 消息推送 Socket WebSocket 其他方案 心跳 附录 引言 现在的移动端开发, 消息推送是...

  • rocketmq一些小的总结

    rocketmq重试机制。 producer端推送消息到broker失败重试:有很多种情况会影响生产端重试发送消息...

  • JavaScript是如何工作的: Web推送通知的机制

    摘要: 如何在Web端推送消息? 原文:JavaScript是如何工作的: Web推送通知的机制 作者:前端小智 ...

  • MQTT协议实现Android聊天功能

    Android客户端实现消息推送无外乎以下几种方式: 1、轮询:客户端通过定时机制往服务端获取消息,这种方式太傻逼...

  • iOS开发常用之消息相关

    消息相关 消息推送客户端 SGPushDemo - 消息推送客户端 Orbiter - 消息推送客户端:iOS...

  • iOS常用第三方推荐-消息篇

    消息推送客户端 SGPushDemo – 消息推送客户端 Orbiter – 消息推送客户端:Push Notif...

  • JPush推送

    移动端获取jPush推送消息,并点击进入详情,首先要设置别名和标签、获取设备id绑定到后台,才可以接收推送消息。具...

  • 移动端开发之APP消息推送

    有这样一种场景,当你在手机APP上输入你的信息,会自动跳出一个弹窗,表示某任务已执行。最简单的一个例子就是当你输入...

网友评论

      本文标题:移动端消息推送机制

      本文链接:https://www.haomeiwen.com/subject/lvzjzftx.html