【技术实现步骤摘要】
本专利技术涉及移动终端与服务端的心跳包发送领域,具体涉及一种动态自适应心跳发送方法及系统。
技术介绍
服务器和客户端(移动终端设备,例如手机、平板电脑等)进行通信时,为了保证客户端和服务器长时间保持连接,以便服务器能够即时给客户端推送消息,一般通过心跳包(客户端和服务器间定时通知对方自己状态的一个自己定义的命令字,按照一定的时间间隔发送,类似于心跳,所以叫做心跳包)维持客户端与服务器之间的长期通信。常规的心跳包为固定发送时间,例如客户端每隔500毫秒发送一次心跳包与服务器进行通信。但是,由于客户端在实际使用中的网络类型(例如移动、联通、电信)和网络环境不同网络环境(2G/3G/4G/WIFI),而不同网络类型和网络环境断开通信后重新连接的超时时间不同,因此为了兼容不同网络类型和网络环境的超时时间,需要根据最短超时时间来设置心跳包的发送时间(若心跳包的发送时间设置较低可能会导致部分网络环境下客户端与服务器断开连接),进而使得心跳包的发送时间过高。进一步,由于每次发送心跳包均会消耗固定的网络流量和电能,因此长期按照较高的发送时间发送心跳包,会消耗大量的网络流量和电能,进而极大的降低了用户体验和客户端性能。
技术实现思路
针对现有技术中存在的缺陷,本专利技术解决的技术问题为:针对不同的网络环境,测试并使用合适的心跳包发送时间,本专利技术测试出的心跳包发送时间,能够在保证最低时间下成功发送心跳包的同时,避免客户端与服务器因为心跳包发送时间过长而导致超时的问题发生,进而降低心跳包的发送次数,显著节省了客户端的网络流量和电能,提高了用户体验和客户端性能。为达到以上目的, ...
【技术保护点】
一种动态自适应心跳发送方法,其特征在于,该方法包括以下步骤:S1:当客户端当前使用的网络环境发送变化时,获取变化之后的网络环境,转到S2;S2:判断客户端中是否存在当前网络环境的心跳包发送时间,若是,转到S6,否则转到S3;S3:建立客户端与服务器之间的连接,设置测试消息发送时间deltTime为50~200ms/次,转到S4;S4:客户端根据deltTime向服务器发送测试消息,判断测试消息是否发送成功,若是,增加deltTime的时长后重新执行S4,否则确认测试消息发送超时,转到S5;S5:将测试消息发送超时前一次设置的deltTime,作为当前网络环境的心跳包发送时间并保存后,重新执行S2;S6:根据当前网络环境的心跳包发送时间,向服务器发送心跳包。
【技术特征摘要】
1.一种动态自适应心跳发送方法,其特征在于,该方法包括以下步骤:S1:当客户端当前使用的网络环境发送变化时,获取变化之后的网络环境,转到S2;S2:判断客户端中是否存在当前网络环境的心跳包发送时间,若是,转到S6,否则转到S3;S3:建立客户端与服务器之间的连接,设置测试消息发送时间deltTime为50~200ms/次,转到S4;S4:客户端根据deltTime向服务器发送测试消息,判断测试消息是否发送成功,若是,增加deltTime的时长后重新执行S4,否则确认测试消息发送超时,转到S5;S5:将测试消息发送超时前一次设置的deltTime,作为当前网络环境的心跳包发送时间并保存后,重新执行S2;S6:根据当前网络环境的心跳包发送时间,向服务器发送心跳包。2.如权利要求1所述的动态自适应心跳发送方法,其特征在于:S3中所述deltTime为100ms。3.如权利要求2所述的动态自适应心跳发送方法,其特征在于:S3中所述deltTime时长的增加方法为:增加时长后的deltTime=增加时长前的+初始设置的deltTime。4.如权利要求1所述的动态自适应心跳发送方法,其特征在于:S2的具体流程为:在Android的SharedPreferences文件中,传入当前网络环境的心跳包发送时间键,SharedPreferences文件返回与当前心跳包发送时间键对应的网络环境的心跳包发送时间;若心跳包发送时间不为空,则确定存在当前网络环境的心跳包发送时间,转到S6;若心跳包发送时间为空,则确定不存在当前网络环境的心跳包发送时间,转到S3;S5中所述当前网络环境的心跳包发送时间的保存方法为:将当前网络环境的心跳包发送时间写入SharedPreferences文件中。5.如权利要求1至4任一项所述的动态自适应心跳发送方法,其特征在于:S1中所述客户端当前使用的网络环境未发生变化时,直接获取客户端当前使用的网络环境,转到S2。6.如权利要求1至4任一项所述的动态自适应心跳发送方法,其特征在于:S1中所述获取变化之后的网络环境的具体流程为:监听客户端的网络广播,网络广播发送有网络变化消息时,获取并解析网络变化消息,得到变化之后的网络环境。7.一种动态自适应心跳发送系统,其特征在于:该系统包括设置于客户端上的网络环境获取模块、心跳包发送时间确认模块、测试参数设置模块、心跳包发送时间测试模块、心跳包发送时间储存模块和心跳包发送模块;网络环境获取模块用于...
【专利技术属性】
技术研发人员:张磊,
申请(专利权)人:武汉斗鱼网络科技有限公司,
类型:发明
国别省市:湖北;42
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。