消息推送就是app向用户发送的服务、推广等信息通知,具体包括订单信息通知、app活动推广信息推送、相关资讯推送、日程提醒等等多种应用场景,可以说是app的核心功能诉求之一。在Android开发中,app消息推送的基本原理就是要在推送服务器和客户端之间建立连接,而连接的建立方式主要有两种pull和push。在实践过程中我们发现,相较于通过轮询(pull)的方式来获得消息通知,建立长连接(push)进行推送无论是对用户终端的电量消耗,还是对云端数据访问流量的耗费都比轮询要好,因此目前主流的app消息推送基本都是通过push的方式实现的。
那么建立长连接实现消息推送的具体解决方案是什么呢?推送的实现技术简单来说就是利用Socket维持Client和Server间的一个长连接,在Android系统中,Google最早推出了C2DM(Cloudto Device Messaging)的云端推送服务,后来又进化为类似于iOS推送服务APNS的GCM(Google Cloud Messaging for Android),然而悲催的是国内的手机基本上不存在原生的安卓系统,所以Google提供的推送服务从一开始就被厂商阉割了。
那么,能不能自己建立一个长连接来实现app的推送呢?当然是可以的!但是研发成本也是很高的,尤其是用户量级上去之后,推送服务器的资源消耗就很厉害了,所以目前国内的app开发者基本上都是选择与第三方消息推送平台合作。市面上的推送平台有很多,也有很多免费的推送服务,但是多数免费推送服务都是有量级限制或者是通道限制的,比如超过多少发送量级之后就开始收费,或者免费推送服务只能使用低级通道,只有付费用户可以使用高级通道,这些并不是真正意义上的免费。在这里推荐一款免费的app消息推送平台,MobPush消息推送服务,开发者可免费使用推送服务和管理平台,享受Mob提供的免费技术服务。