要实现一个通知推送的功能,但是现在没有任何思路,不知道现在市场上的应用都是使用什么方案来实现信息推送?
能否详细介绍下这些方案?
巴扎黑2017-04-17 13:54:14
1、GMS:google messange server这个别指望了,我大天朝
2、现在普遍采用的方法是:在应用启动时开启一个PushService,去服务端进行一个长连接(mqtt、xmpp协议等),然后由服务端通过长连接推送消息到PushService,PushService接收到消息之后生成一个notification。可以自己搭建推送服务器,但建议使用第三方的SDK,比如信鸽、极光推送、百度推送,大部分需求都是可以满足的。
采用2方法做的话可能会出现一个问题,并不能保证PushService一直存活,所以要解决怎样保证PushService不被杀死。
黄舟2017-04-17 13:54:14
@Akioss 说的2确实是常用的方式,PushService的话 alarmmanger可以做一个定时任务,定时给服务器发送心跳,同时也能保证pushservice 是活的,如果不在,可以在起。
伊谢尔伦2017-04-17 13:54:14
目前,市场上的应用多数的解决方案是使用第三方推送服务。
我们的解决方案是让开发者在客户端集成我们的 Android SDK,服务端可通过 SDK 或使用 RESTful API,向 Android 客户端发消息。
在实时性方面,Android SDK 会启动一个后台的 Service,创建并保持到云巴服务器的长连接,从而保证了消息推送的实时性。
而且,当客户端当前不在线的时候,我们可以支持 离线消息 的功能,可保证消息送达客户端。
此外,面对 Android 5.0 及以上的平台,应用进入后台就会被杀死,导致出现用户收不到 App 消息推送的问题,我们还对现有的方案进行升级,集成了华为和小米厂商通道,使用云巴推送可以一键对几种厂商的机型推送,保障到达率。