概述
1,心跳机制
1)概念
定时发送一个自定义的结构体(心跳包),让服务器知道自己还活着,以确保连接的有效性。
长连接比较耗电。
在TCP机制里面,本身是存在有心跳包机制的,也就是TCP选项:SO_KEEPALIVE. 系统默认是设置的2小时的心跳频率。
2)场景
由于手机的无线运营商为了减少网关映射表的负荷,会在表中删除一段时间内未通信的链路,造成链路中断。为了避免这种中断,应用需要以远高于正常频率发送心跳来维护推送的长连接。
当一台智能手机连上移动网络时,其实并没有真正连接上Internet,运营商分配给手机的IP其实是运营商的内网IP,手机终端要连接上Internet还必须通过运营商的网关进行IP地址的转换,这个网关简称为NAT(NetWork
Address Translation),简单来说就是手机终端连接Internet 其实就是移动内网IP,端口,外网IP之间相互映射。
由于大部分的移动无线网络运营商为了减少网关NAT映射表的负荷,如果一个链路有一段时间没有通信时就会删除其对应表,造成链路中断,正是这种刻意缩短空闲连接的释放超时,原本是想节省信道资源的作用,却让应用不得以远高于正常频率发送心跳来维护推送的长连接。
3)应用
极光推送:集成 JPush 的 SDK 客户端启动后会建立一个到 JPush Cloud 的长链接, 提供 App 永远在线的能力;
2,推送
如果客户端和服务器之间不存在一个长连接,那么服务器无法主动连接客户端的。因而推送功能都是基于长连接的基础是上的。
1)SMS 推送(Short Message Service ,短信服务)
①实现方式
服务器有新内容时,发送一条类似短信的信令给客户端,客户端收到后从服务器中下载新内容。
②优点
省电, 省流量, 在没有网络的偏远地点也能接收到推送消息;
2)轮询推送(pull)
①实现方式
周期性主动获取网络中的数据:
客户端不断的查询服务器,检索新内容,也就是所谓的pull 或者轮询方式
②缺点
费电, 费流量;
2)长连接 推送
主流方法;
①实现方式
手机端与服务器端建立一条长时间的数据流链接, 手机客户端一直等待服务器端的数据;
②优点
有一条长链接, 有数据的时候才发送数据, 没有时不消耗流量, 比较省流量;
③缺点
由于要保存一条长链接, 比较费电; 在网络不稳定的情况下, 推送容易失败;
3,断线重连
1)概念
android端连接网络之后,当网络断开连接时,为了提高用户体验,android自动检测网络,当有网络时,用户无需进行多余操作,android端自动重新连接网络。
2)实现
最后
以上就是拉长老虎为你收集整理的【Android学习】断线重连、长连接心跳机制1,心跳机制2,推送3,断线重连的全部内容,希望文章能够帮你解决【Android学习】断线重连、长连接心跳机制1,心跳机制2,推送3,断线重连所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复