通信网络中长连接的心跳保活方法及装置的制造方法

文档序号:9846824阅读:630来源:国知局
通信网络中长连接的心跳保活方法及装置的制造方法
【技术领域】
[0001]本发明涉及计算机技术领域,具体而言,涉及一种通信网络中长连接的心跳保活方法和一种通信网络中长连接的心跳保活装置。
【背景技术】
[0002]目前,随着移动互联的发展,人与人的社交方式的改变,移动APP(AppliCat1n,应用程序)、企业应用、手游、WEB(互联网)应用都慢慢的开始嵌入即时通信的功能,使人与人、人与企业、企业与企业之间能无时无地的及时通信、协作和分享。但目前大部分移动网络运营商的网关都会在通信链路一段时间内没有进行数据通讯时,会淘汰NAT (NetworkAddress Translat1n,网络地址转换)表中的对应项,造成通信链路中断,而且移动终端不会感知到通信链路中断的场景,这个时间称为NAT老化时间。为了使移动终端与后台服务器之间能保持长链接,客户端需要向服务器发送应用层定义的协议包,称为心跳。目前广泛的心跳实现一般都是基于固定周期或者经验累加减少的机制(以下统称为传统心跳机制),该传统心跳机制主要存在以下问题:
[0003](I)用户所处的网络环境复杂,无法高效的保持长连接。
[0004](2)用户的使用时间与习惯也是随意性的,无法高效的保持长连接。
[0005](3)各个端的资源限制各不相同,无法达到最高效的能源使用。
[0006]因此,如何有效地延长向服务器发送心跳包的发送周期,以最大限度地减少心跳的工作时间,节省电量及流量,从而提升用户体验成为亟待解决的技术问题。

【发明内容】

[0007]本发明正是基于上述技术问题,提出了一种新的技术方案,可以有效地延长向服务器发送心跳包的发送周期,并通过对用户行为分析调整心跳包的一个发送周期的计时起点,以最大限度地减少心跳的工作时间,节省电量及流量,从而提升用户体验。
[0008]有鉴于此,本发明的第一方面,提出了一种通信网络中长连接的心跳保活方法,包括:确定当前网络类型;根据所述当前网络类型按照对应的默认发送周期向服务器发送心跳包;统计向所述服务器发送心跳包的连续失败次数或连续成功次数;判断所述连续失败次数是否大于或等于第一预设次数,或者判断所述连续成功次数是否大于或等于第二预设次数;根据判断结果调整所述当前网络类型对应的默认发送周期,以按照调整后的发送周期向所述服务器发送心跳包。
[0009]在该技术方案中,通过分析确定客户端的当前网络类型,进而根据预设的与当前网络类型对应的默认发送周期向服务器发送心跳包,并根据服务器对接收到的心跳包的响应反馈情况统计客户端向服务器发送心跳包的连续失败次数或连续成功次数,进而根据统计出的连续失败次数或连续成功次数分别与对应的预设次数的大小关系来智能调整初始设置的默认发送周期,以后续按照调整后的发送周期向服务器发送心跳包,进而下一轮地根据客户端向服务器发送心跳包的连续失败次数或连续成功次数的情况继续智能调整心跳包的发送周期,如此,可以通过分析当前网络类型的通信网络的强弱实现对心跳包发送周期的调整,从而达到省电省流量的目的,提升用户体验。
[0010]在上述技术方案中,优选地,所述根据判断结果调整所述当前网络类型对应的默认发送周期,以按照调整后的发送周期向所述服务器发送心跳包,具体包括:当所述连续失败次数大于或等于所述第一预设次数时,减小所述默认发送周期,或者当所述连续成功次数大于或等于所述第二预设次数时,延长所述默认发送周期。
[0011]在该技术方案中,根据统计出的客户端向服务器发送心跳包的连续失败次数或连续成功次数分别与对应的预设次数的大小关系来智能调整初始设置的默认发送周期,具体包括:当先判定统计出的连续失败次数大于或等于第一预设次数(比如3次)时,表明当前网络连接较弱,可以通过减小初始设置的与当前网络类型对应的默认发送周期来重置心跳包的发送周期,比如按照一定的步长减小,来保活客户端与服务器之间的长连接,进一步地,有助于快速地确定网络是否已断开,并在确定网络已断开时,停止对心跳包发送周期的智能调整,以达到省电省流量的目的;或者,当先判定统计出的连续成功次数大于或等于第二预设次数(比如5次)时,表明当前网络连接良好,可以通过延长初始设置的与当前网络类型对应的默认发送周期来重置心跳包的发送周期,以达到省电省流量的目的。
[0012]在上述任一技术方案中,优选地,还包括:当所述连续失败次数小于所述第一预设次数且判定向所述服务器发送心跳包成功时,将当前统计的所述连续失败次数归零,以开始统计所述连续成功次数,或者当所述连续成功次数小于所述第二预设次数且判定向所述服务器发送心跳包失败时,将当前统计的所述连续成功次数归零,以开始统计所述连续失败次数。
[0013]在该技术方案中,在当前统计出的发送心跳包的连续失败次数或连续成功次数未达到对应的预设次数,且新一次发送心跳包的结果为相反的结果(成功或失败)时,则将当前统计出的连续失败次数或连续成功次数重置归零,以开始统计连续成功次数或连续失败次数,如此,可以有效地提高对当前网络连接状况的准确判定,从而高效地保持客户端与服务器之间的长连接。
[0014]在上述任一技术方案中,优选地,还包括:当每次检测到与所述服务器之间存在数据交互时,按照调整后的发送周期从头开始计时,以在达到所述调整后的发送周期时向所述服务器发送心跳包;当未检测到与所述服务器之间存在数据交互时,立即向所述服务器发送心跳包,以根据发送结果确定是否减小所述调整后的发送周期。
[0015]在该技术方案中,为了最大限度地减少智能心跳的工作时间,从而达到省电省流量的目的,具体地,每当检测到客户端与服务器之间存在数据交互时,比如由客户端向服务器发送心跳包或者服务器向客户端反馈业务包时,则表明此时客户端与服务器之间的网络连接状况良好,则可以将当前向服务器发送心跳包的发送周期内的已计时统计的时间清零重新开始下一个发送周期(之前调整设置的最优心跳包的发送周期)的计时统计,延长心跳包的发送周期至当前最大允许的周期;而当未检测到客户端与服务器之间的数据交互时,贝IJ有可能说明网络已断开,则需要立即向服务器发送心跳包,进而根据发送结果(即服务器是否有反馈)确定是否减小当前的发送周期,具体地,若服务器有响应时,则继续重置心跳包的发送周期,从头开始计时,以延迟心跳包的发送,否则需要缩短当前的发送周期来判定网络的连接情况。综上,通过学习用户的使用情况和使用习惯,调整心跳包的一个发送周期的计时起点,以最大限度的减少智能心跳的工工作时间,达到省电省流量的目的。
[0016]在上述任一技术方案中,优选地,所述当前网络类型包括:移动通信网络和无线通信网络,以及所述移动通信网络对应的默认发送周期大于所述无线通信网络对应的默认发送周期。
[0017]在该技术方案中,当客户端的当前网络类型为移动通信网络时,预先设置的向服务器发送心跳包的默认发送周期应相对较长,以有效地减少流量的大量损耗,而当客户端的当前网络类型为无线通信网络时,预先设置的向服务器发送心跳包的默认发送周期应相对较短,以保证网络连接的可用性。
[0018]根据本发明的第二方面,提出了一种通信网络中长连接的心跳保活装置,包括:确定模块,用于确定当前网络类型;发送模块,用于根据所述确定模块确定的所述当前网络类型按照对应的默认发送周期向服务器发送心跳包;统计模块,用于统计所述发送模块向所述服务器发送心跳包的连续失败次数或连续成功次数;判断模块,用于判断所述统计模块统计的所述连续失败次数是否大于或等于第一预设次数,或者判断所述统计模块统计的所述连续成功次数是否大于或等于第二预设次数;调整模块,用于根据所述判断模块的判断结果调整所述当前网络类型对应的默认发送周期,以按照调整后的发送周期向所述服务器发送心跳包。
[0019]在该技术方案中,通过确定模块分析确定客户端的当前网络类型,进而通过发送模块根据预设的与确定模块确定的当前网络类型对应的默认发送周期向服务器发送心跳包,并通过统计模块根据服务器对接收到的心跳包的响应反馈情况统计客户端向服务器发送心跳包的连续失败次数或连续成功次数,进而通过调整模块根据判断模块判定的统计模块统计出的连续失败次数或连续成功次数分别与对应的预设次数的大小关系来智能调整初始设置的默认发送周期,以后续按照调整模块调整后的发送周期通过发送模块向服务器发送心跳包,进而下一轮地根据客户端向服务器发送心跳包的连续失败次数或连续成功次数的情况继续智能调整心跳包的发送周期,如此,可以通过分析当前网络类型的通信网络的强弱实现对心跳包发送周期的调整,从而达到省电省流量的目的,提升用户体验。
[0020]在上述技术方案中,优选地,所述调整模块具体用于:当所述判断模块判定所述连续失败次数大于或等于所述第一预设次数时,减小所述默认发送周期,或者当所述判断模块判定所述连续成功次数大于或等于所述第二预设次数时,延长所述默认发送周期。
[0021]在该技术方案中,通过调整模块根据判断模块判定的统计模块统计出的客户端向服务器发送心跳包的连续失败次数或连续成功次数分别与对应的预设次数的大小
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1