android 消息推送是什么,消息推送一般是怎么做的
Android消息推送,基本上都是以长链接的方式实现的,其原理是客户端主动和服务器建立TCP长链接,长链接建立之后,客户端定期向服务器发送心跳包用于保持链接,当有消息要发送的时候,服务器可以直接通过这个已经建立好的长链接,将消息发送到客户端。
Android端可以通过两种方式实现消息推送,一种是自建推送平台,但这种方式耗时耗力成本高,且长链接的稳定性和存活性难以保障;另外一种是直接选用像个推这样的第三方消息推送供应商。开发者只需要集成个推消息推送SDK,即可简单、快捷地实现Android平台的消息推送功能,有效提高产品活跃度、增加用户留存。此外,个推消息推送在消息推送的基本性能上,如省电省流量、长链接稳定性、推送速率、安全性等方面都具有领先业内的优势。
如果您对个推消息推送感兴趣,欢迎您前往个推开发者中心免费注册体验。
1、可以通过SMS进行服务器端和客户端的交流通信。 可以通过拦截SMS消息并且解析消息内容来了解服务器的意图,可以实现完全的实时操作。
3、循环主动定时获取
这种方法是需要客户端来做一个定时或者周期性的访问服务器端接口,来获得最新的消息。
3、持久连接
这个方案虽然可以解决由轮询带来的性能问题等各种问题,但是还是会消耗手机的电池。
消息推送可以选择深圳极光,是一个不错的软件;也是是国内领先的移动开发者服务提供商。极光通过该一体化消息下发平台,助力行业客户实现多通道高效精准触达目标用户。截至2021年3月,已有超173.1万款APP在使用极光提供的服务。
推送方法如下:
1)通过SMS进行服务器端和客户端的交流通信。
在Android平台上,你可以通过拦截SMS消息并且解析消息内容来了解服务器的意图,可以实现完全的实时操作。但是问题是这个方案的成本相对比较高,且依赖于运营商。
2)循环主动定时获取
这种方法需要客户端来做一个定时或者周期性的访问服务器端接口,以获得最新的消息。轮询的频率太慢可能导致某些消息的延迟,太快则会大量消耗网络带宽和电池。
3)持久连接
这个方案可以解决由轮询带来的性能问题,但是还是会消耗手机的电池。我们需要开一个服务来保持和服务器端的持久连接(苹果就和谷歌的C2DM是这种机制)。但是对于Android系统,当系统可用资源较低,系统会强制关闭我们的服务或者是应用,这种情况下连接会强制中断。(Apple的推送服务之所以工作的很好,是因为每一台手机仅仅保持一个与服务器之间的连接,事实上C2DM也是这么工作的。即所有的推送服务都是经由一个代理服务器完成的,这种情况下只需要和一台服务器保持持久连接即可。C2DM=Cloud to Device Messaging)。
推荐于2017-09-23 · 知道合伙人软件行家
消息推送其实要看你的业务需求,我们有用极光推送
如果说需要不是一定要实时,那还不如自己在客户端写轮轮询
毕竟第三方的推送基本都是收费的,免费使用的,要么有次数限制,要么有频率限制等等
如果只是你玩一下,那可以用极光推送,或者是百度云推送,集成很简单,都有现在的代码,直接都可以运行的
实现推送,可以归为两种
服务器主动推送消息
客户端定时查询消息
主动推送的话,可以用http长连接,也可以用java socket 一直保持连接,从而实现实时推送(优点是消息实时,缺点是服务器压力大,手机耗电,耗流量, 开发难度大)
客户端定时查询的话,就是启动定时器,格多长时间去查一下服务器看看有没数据就行了(优点是开发简单,客户端耗电和流量少,但是消息不实时)
那一般现在的手机app应用用的是哪一种推送,一般用哪一种好一些。
要看你的业务需求了
如果你只是玩一下,那就用极光推送或者用百度云推送,都还不错,简单易用
如果说需要不是一定要实时,那还不如自己在客户端写轮轮询
毕竟第三方的推送基本都是收费的,免费使用的,要么有次数限制,要么有频率限制等等
如果只是你玩一下,那可以用极光推送,或者是百度云推送,集成很简单,都有现在的代码,直接都可以运行的
实现推送,可以归为两种
服务器主动推送消息
客户端定时查询消息
主动推送的话,可以用http长连接,也可以用java socket 一直保持连接,从而实现实时推送(优点是消息实时,缺点是服务器压力大,手机耗电,耗流量, 开发难度大)
客户端定时查询的话,就是启动定时器,格多长时间去查一下服务器看看有没数据就行了(优点是开发简单,客户端耗电和流量少,但是消息不实时)