Android推送中心跳和轮询的区别

Android推送服务有几种实现方式分别是轮询、SMS通知和长链接。主要记录下轮询和长链接的区别

轮询:

客户端通过Timer或AlarmManager定期询问服务器有没有新的消息, 这样服务器不用管客户端的地址是什么直接告诉它新消息即可.

这种方案最简单, 对于一些实时性要求不高的客户端来说比较适合,但对于即时通讯来说, 这种方案完全不能用. 对于即时通讯为了需要消息尽快达到客户端只能讲定时的时间尽量的缩小,这样对手机的网络和电量来说都是很大的考验。


长链接:

长连接就是客户端和服务器建立连接之后, 不主动断开. 双方互相发送数据, 发完了也不主动断开连接, 之后有需要发送的数据就继续通过这个连接发送.客户端和服务器建立TCP长连接之后, 客户端定期向服务器发送心跳包,以保活连接 有消息的时候, 服务器直接通过这个已经建立好的TCP连接通知客户端即可。


那轮询和心跳包有什么区别呢

轮询耗费性能,因为每次轮询都要经过一次TCP的连接和断开。

轮询是为了获取数据,而心跳包是为了保活TCP连接,防止NAT超时(内网和外网的映射表)

轮询设定的时间大小决定了数据获取的及时性,心跳包的发送时间间隔和数据的及时性没有太大的关系,如果心跳包发送的时间间隔大于NAT淘汰的时间会导致长连接断开




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值