智能心跳保活方法及智能心跳保活系统的制作方法
【专利摘要】一种智能心跳保活方法及系统,该方法包括步骤:在监测到满足智能心跳自适应计算条件时,采用当前心跳包时间间隔进行心跳测试,并在满足测试成功条件时,将当前心跳包时间间隔加上预定心跳增加步长作为新的当前心跳包时间间隔,返回采用当前心跳包时间间隔进行心跳测试的步骤,在满足测试失败条件时,根据当前心跳包时间间隔确定稳定心跳包时间间隔。根据本发明方案,不仅可以得到与当前网络环境相适应的、能保持网络连接的尽可能大的心跳包时间间隔,由于心跳包时间间隔是尽可能大的,因而也可以在一定程度上节省电量、流量以及网络资源。
【专利说明】智能心跳保活方法及智能心跳保活系统
【技术领域】
[0001] 本发明涉及通信【技术领域】,特别涉及一种智能心跳保活方法及智能心跳保活系 统。
【背景技术】
[0002] 在目前的网络通信技术中,由于IPv4的IP地址有限,因此,在移动通信时,运营商 分配给移动终端的IP地址是运营商内网的IP地址。在移动终端需要连网时,通过运营商 的网关做一个网络地址转换(Network Address Translation, NAT),以此实现移动终端的 网络通信。为了能够保证有效的对内网IP地址进行运用,目前大部分移动网络运营商的网 关都会在通信链路一段时间没有进行数据通讯时,会淘汰NAT表中的对应项,造成通信链 路中断,而且移动终端不会感知到通信链路中断的场景,这个时间称为NAT老化时间。为了 能够保活移动终端与后台服务器之间的连接,客户端需要向服务器发送应用层定义的协议 包,称为心跳。而智能心跳是指根据网络类型和稳定程度动态调整心跳的频率,在尽可能保 持网络链接存活的前提下,动态的降低心跳频率,减少对网络资源的占用。
[0003] 在目前的智能心跳保活技术中,Google的消息推送框架GCM(Google Cloud Message)会通过对网络类型进行区分,针对不同类型的网络分别采用不同的固定间隔的心 跳来保活网络链接链接,在WIFI下使用15分钟心跳间隔,在数据网络下使用28分钟心跳 间隔。而其他的移动终端类应用也都采用固定的心跳策略,典型的心跳值有3分20秒、4分 30秒、4分45秒、7分钟、15分钟、28分钟等等。
[0004] 目前的移动终端保活心跳技术,大多采用固定的心跳间隔,虽然实现比较简单,但 是大多使用心跳经验值,对网络的适应性差,如果采用较小的心跳间隔,会导致费电费流量 浪费网络资源,如果采用较大的心跳间隔,将不能长时间保活连接,不能及时感知到通信连 接的断开,导致收取消息的不及时。
【发明内容】
[0005] 基于此,针对上述现有技术中存在的问题,本发明的在于提供一种智能心跳保活 方法、一种智能心跳保活客户端,其可以自适应的找出保活网络连接的尽可能大的心跳间 隔。
[0006] 为达到上述目的,本发明实施例采用以下技术方案:
[0007] -种智能心跳保活方法,包括步骤:
[0008] 在监测到满足智能心跳自适应计算条件时,采用当前心跳包时间间隔进行心跳测 试,并在满足测试成功条件时,将当前心跳包时间间隔加上预定心跳增加步长作为新的当 前心跳包时间间隔,返回采用当前心跳包时间间隔进行心跳测试的步骤,在满足测试失败 条件时,根据当前心跳包时间间隔确定稳定心跳包时间间隔。
[0009] 一种智能心跳保活系统,包括:
[0010] 监测模块,用于监测是否满足智能心跳自适应计算条件; toon] 心跳测试模块,用于在所述监测模块监测到满足自适应计算条件时,或者根据步 长增加模块的结果,采用当前心跳包时间间隔进行心跳测试;
[0012] 测试成功条件判定模块,用于根据所述心跳测试模块的测试结果判定是否满足测 试成功条件;
[0013] 步长增加模块,用于在所述测试成功条件判定模块判定满足测试成功条件时,将 当前心跳包时间间隔加上预定心跳增加步长作为新的当前心跳包时间间隔;
[0014] 测试失败条件判定模块,用于根据所述心跳测试模块的测试结果判定是否满足测 试失败条件;
[0015] 稳定心跳包确定模块,用于在所述测试失败条件判定模块判定满足测试失败条件 时,根据当前心跳包时间间隔确定稳定心跳包时间间隔。
[0016] 根据本发明方案,其是通过对智能心跳自适应计算条件进行监测,并在满足智能 心跳自适应计算条件时,通过进行心跳测试逐步对心跳包时间间隔进行调整,直至找到合 适的稳定心跳包时间间隔,从而不仅可以得到与当前网络环境相适应的、能保持网络连接 的尽可能大的心跳包时间间隔,由于心跳包时间间隔是尽可能大的,因而也可以在一定程 度上节省电量、流量以及网络资源。
【专利附图】
【附图说明】
[0017] 图1是本发明的智能心跳保活方法实施例的流程示意图;
[0018] 图2是本发明一个具体示例中各状态之间切换过程的示意图;
[0019] 图3是本发明一个具体示例中自适应确定稳定心跳包时间间隔的流程示意图;
[0020] 图4是本发明一个具体示例中用稳定心跳包时间间隔发送心跳包时动态调整的 流程示意图;
[0021] 图5是本发明一个具体示例中延迟心跳测试实施例的流程示意图;
[0022] 图6是本发明一个具体示例中动态调整心跳包时间间隔的流程示意图;
[0023] 图7是本发明另一个具体示例中动态调整心跳包时间间隔的流程示意图;
[0024] 图8是本发明的智能心跳保活系统实施例一的结构示意图;
[0025] 图9是本发明的一个具体示例中的智能心跳保活系统的结构示意图;
[0026] 图10是图9所示的智能心跳保活系统一个具体示例中的测试成功条件判定模块 的结构不意图;
[0027] 图11是图9所示的智能心跳保活系统一个具体示例中的测试失败条件判定模块 的结构不意图;
[0028] 图12是本发明的另一个具体示例中的智能心跳保活系统的结构示意图;
[0029] 图13是基于本发明方案提供的终端的部分结构框图。
【具体实施方式】
[0030] 为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本 发明进行进一步的详细说明。应当理解,此处所描述的【具体实施方式】仅仅用以解释本发明, 并不限定本发明的保护范围。
[0031] 在下述说明中,先针对本发明的智能心跳保活方法的实施例进行说明,再对本发 明的智能心跳保活系统的各实施例进行说明。
[0032] 图1中示出了本发明的智能心跳保活方法实施例的流程示意图。如图1所示,本 实施例中的方法包括步骤:
[0033] 步骤S101 :监测是否满足智能心跳自适应计算条件,并在监测到满足智能心跳自 适应计算条件时,进入步骤S102 ;
[0034] 步骤S102 :采用当前心跳包时间间隔进行心跳测试,然后进入步骤S103、步骤 S105 ;
[0035] 步骤S103 :判断是否满足测试成功条件,若满足测试成功条件,则进入步骤S104 ;
[0036] 步骤S104 :将当前心跳包时间间隔加上预定心跳增加步长作为新的当前心跳包 时间间隔,然后返回步骤S102的采用当前心跳包时间间隔进行心跳测试的步骤;
[0037] 步骤S105 :判断是否满足测试失败条件,若满足测试失败条件,则进入步骤S106 ;
[0038] 步骤S106 :根据当前心跳包时间间隔确定稳定心跳包时间间隔。
[0039] 根据本发明实施例的方法,其是通过对智能心跳自适应计算条件进行监测,并在 满足智能心跳自适应计算条件时,通过进行心跳测试逐步对心跳包时间间隔进行调整,直 至找到合适的稳定心跳包时间间隔,从而不仅可以得到与当前网络环境相适应的、能保持 网络连接的尽可能大的心跳包时间间隔,由于心跳包时间间隔是尽可能大的,因而也可以 在一定程度上节省电量、流量以及网络资源。
[0040] 在本发明方案中,可以设定有一个心跳包时间间隔区间,该心跳包时间间隔区间 的最小值(本发明方案中称之为预设最小心跳包时间间隔)。为了能够保证应用收取消息 的及时性,在本发明方案的一个具体实施例中,在应用处于前台活跃状态时,可以将应用的 心跳包时间间隔设置为该预设最小心跳包时间间隔。对于目前的各类应用来说,当应用处 于前台时,即终端界面显示的是该应用的界面时,则该应用是处于活跃状态。监测应用是处 于前台状态还是后台状态的方式,可以采用目前以及以后可能出现的任何方式进行,在此 不予详加赘述。
[0041] 在本发明方案的一个具体示例中,可以根据具体情境的不同设定不同的状态。图 2中示出了该示例中各状态之间切换过程的示意图。
[0042] 如图2所示,在该示例中一共包括有五个状态:前台活跃态、后台活跃态、自适应 计算态、后台稳定态、以及断网IDLE态。
[0043] 前台活跃态,是指应用在前台,而且屏幕亮屏。在前台活跃态,可以采用预设最小 心跳包时间间隔发送心跳包。在本发明的一个具体示例中,该预设最小心跳包时间间隔可 以设置为4. 5分钟。
[0044] 后台活跃态,是指应用切换到后台、或者终端的屏幕刚关屏的状态。后台活跃态是 前台活跃态与自适应计算态之间的过渡状态,以尽量选择不活跃的时间段来进行自适应心 跳计算,以减少自适应心跳计算可能产生的消息不能及时收取的影响。在不考虑自适应心 跳计算所耗费的时间因素的话,也可以不设置该后台活跃态。在本发明的一个具体示例中, 该后台活跃态可以采用与前台活跃态相同的预设最小心跳包时间间隔发送心跳包,且保持 长连接预定时间段。该预定时间段可以根据实际需要进行设定,例如30分钟等等。在另一 个具体示例中,该后台活跃太可以采用与前台活跃态相同的预设最小心跳包时间间隔发送 心跳包,且在发送心跳包连续成功第一预定成功次数时,在连续成功第一预定成功次数后, 才能判定网络仍然处于稳定状态,然后才进入后续的自适应计算态。
[0045] 自适应计算态,是指通过进行心跳测试来进行自适应计算最终得到稳定心跳包时 间间隔的过程,即上述本发明实施例中的步骤S102至步骤S106所包含的过程。
[0046] 后台稳定态,是指在自适应计算态已经找到了最大的心跳包时间间隔,即上述稳 定心跳包时间间隔,并用该稳定心跳包时间间隔来保持稳定心跳。
[0047] 断网IDLE态,是指应用断网停止心跳。
[0048] 上述五个状态之间,并不是相互孤立存在的,各状态之间在实际应用场景中可以 进行相互的切换。如图2所示,前台活跃态与后台活跃态之间可以相互切换,自适应计算态 与后台稳定态之间可以相互切换。在断网后,可以从前台活跃态、后台活跃态、自适应计算 态、后台稳定态切换到断网IDLE态。在断网的情况下,若在应用处于前台、所在终端开屏的 情况下联网,则可以从断网IDLE态切换到前台活跃态;若在应用处于后台或者终端关屏的 情况下联网,则可以从断网IDLE态切换到后台活跃态。在自适应计算态以及后台稳定态 时,若接收到新消息,则可以切换到后台活跃态。在下述针对各具体示例的说明中,再结合 具体的状态进行详细说明
[0049] 上述智能心跳自适应计算条件,可以针对不同情况做不同的设置。
[0050] 在其中一种方式中,可以是在监测到应用处于后台状态或者终端处于前台关屏状 态时,判定满足智能心跳自适应计算条件。从而可以是尽量选择应用不活跃的时间段,减少 了心跳自适应计算过程中可能产生的消息接收不及时的影响。
[0051] 在另外一种方式中,可以是在用稳定心跳包时间间隔发送心跳包、且发送心跳包 连续失败第二预定失败次数时,判定满足智能心跳自适应计算条件。其中,这里的第二预定 失败次数,基于实际需要可以做不同的设定。在本发明方案的一个具体示例中,可以将第二 预定失败次数设定为5次。
[0052] 此外,为了能够确保是在网络稳定的情况下进行智能心跳自适应计算,在监测到 上述满足智能心跳自适应计算条件后,还可以是在确定网络处于稳定状态后,再进入上述 采用当前心跳包时间间隔进行心跳测试的步骤。确定网络处于稳定状态的方式,基于实际 应用需要可以有不同的方式。
[0053] 在其中一种方式中,可以是在监测到满足自适应计算条件后,以采用预设最小心 跳包时间间隔发送心跳包的方式维持预定时间段后,认为网络处于稳定状态,并进入上述 采用当前心跳包进行心跳测试的步骤。上述预定时间段,可以根据实际需要自行设定。
[0054] 在另外一种方式中,可以是在监测到满足智能心跳自适应计算条件后,采用预设 最小心跳包时间间隔发送心跳包,且在发送心跳包连续成功第一预定成功次数时,认为网 络处于稳定状态,并进入上述采用当前心跳包进行心跳测试的步骤。其中,这里的第一预定 成功次数,可以根据实际需要自行设定。在本发明的一个具体实施例中,可以将该第一预定 成功次数设定为3次。
[0055] 在另外一种实现方式中,可以是在监测到满足自适应计算条件后,将当前心跳包 时间间隔设定为预设最小心跳包时间间隔,然后进入所述采用当前心跳包时间间隔进行心 跳测试的步骤。
[0056] 针对上述测试成功条件,也可以做不同的设置。
[0057] 在其中一种方式中,可以是在采用当前心跳包时间间隔进行心跳测试且测试成功 时,判定满足测试成功条件。即,只要用当前心跳包时间间隔进行心跳测试成功一次,就可 以判定满足测试成功条件。
[0058] 在另外一种方式中,可以是在采用当前心跳包时间间隔进行预定测试次数的心跳 测试,且成功率大于或者等于预定成功率门限值时,判定满足测试成功条件。这里的预定测 试次数,可以根据实际需要进行设定,例如20次、30次等。这里的成功率,是心跳测试成功 的次数与心跳测试总次数的比值,这里的预定成功率门限值,可以根据实际需要进行设定, 例如70%、80%、90%等等。在要求很高的情况下,甚至于可以是将该预定成功率门限值设 定为更高的值。
[0059] 在另外一种方式中,可以是在采用当前心跳包时间间隔进行心跳测试、且连续成 功第二预定成功次数时,判定满足测试成功条件。
[0060] 相应地,针对上述测试失败条件,也可以做不同的设置。
[0061] 在其中一种方式中,可以是在采用当前心跳包时间间隔进行心跳测试、心跳测试 失败次数累积达到第一预定失败次数时,判定满足测试失败条件。
[0062] 在另外一种方式中,可以是在采用当前心跳包时间间隔进行预定测试次数的心跳 测试,且成功率小于预定成功率门限值时,判定满足测试失败条件。
[0063] 以在采用当前心跳包时间间隔进行心跳测试且测试成功时判定满足测试成功条 件、心跳测试失败次数累积达到第一预定失败次数时判定满足测试失败条件为例,图3中 示出了一个具体示例中自适应确定稳定心跳包时间间隔的流程示意图。
[0064] 如图3所示,在该示例中,SuccessHeart表示当前成功心跳时间间隔,初始为 MinHeart ;CurHeart表示当前心跳包时间间隔,初始值为SuccessHeart ;HeartStep表示预 定心跳增加步长,在其中一个具体示例中,可以选择为1分钟。
[0065] 如图3所示,在该示例中,先以当前心跳包时间间隔CurHeart进行心跳测试,并根 据心跳测试的不同做不同的处理。
[0066] 若心跳测试成功,则说明满足测试成功条件,将该当前心跳包时间间隔CurHeart 设置为当前成功心跳时间间隔SuccessHeart,并将当前心跳包时间间隔CurHeart加上预 定心跳增加步长HeartStep得到的值作为新的当前心跳包时间间隔,返回重新进行心跳测 试。
[0067] 若心跳测试不成功,则将当前心跳包时间间隔CurHeart心跳失败次数加1, 并判断当前心跳包时间间隔CurHeart心跳失败次数是否大于或者等于预定第一预定 失败次数,如果是,则说明满足测试失败条件,结束自适应调整过程,将当前成功心跳时 间间隔SuccessHeart或者当前心跳包时间间隔减去预定心跳增加步长HeartStep(即 CurHeart-HeartStep)得到的值作为稳定心跳包时间间隔,进入后台稳定态,在后台稳定 态,直接用该稳定心跳包时间间隔发送心跳包。为了避免直接将当前成功心跳时间间隔 SuccessHeart设定为稳定心跳包时间间隔时可能会靠近心跳包时间间隔的临界值,进而 影响到心跳包发送的成功率以及心跳保活的稳定性,如图3所示,还可以是将当前成功心 跳时间间隔SuccessHeart减去预设稳定心跳步长AvertCriticalStep所得到的差值(即 SuccessHeart-AvertCriticalStep)作为稳定心跳包时间间隔。若当前心跳包时间间隔 CurHeart心跳失败次数小于预定第一预定失败次数,则说明还未满足测试失败条件,返回 重新进行心跳测试。
[0068] 图3中所示的自适应确定稳定心跳包时间间隔的说明中,是以一次心跳测试成功 就认为满足测试成功条件为例进行说明。在具体应用中,也可以设置为心跳测试的次数累 积或者连续达到一定次数时才认为满足测试成功条件。
[0069] 在确定了稳定心跳包时间间隔后,则进入上述后台稳定态。在采用稳定心跳包时 间间隔发送心跳包时,由于网络环境等的变化,可能会从后台稳定态返回到上述自适应计 算态。据此,图4中示出了一个具体示例中用稳定心跳包时间间隔发送心跳包时的动态调 整的流程示意图。在该示例中,以SuccessHeart表示稳定心跳包时间间隔,MinHeart表示 预设最小心跳包时间间隔,CurHeart表示当前心跳包时间间隔。
[0070] 如图4所示,在后台稳定态,用稳定心跳包时间间隔SuccessHeart发送心跳包, 并对发送心跳包是否成功进行判断。若发送心跳包成功,将SuccessHeart心跳失败次数 清零,返回继续采用稳定心跳包时间间隔SuccessHeart发送心跳包。若发送心跳包不成 功,则将SuccessHeart心跳失败次数加 1后,判断SuccessHeart心跳失败次数是否大于 或者等于第二预定失败次数,若是,则说明该稳定心跳包时间间隔SuccessHeart已经不合 适了,需要重新进行智能心跳自适应计算,即满足了智能心跳自适应计算条件,将当前心 跳包时间间隔CurHeart设置为预设最小心跳包时间间隔MinHeart后,进入自适应计算 态,进入上述用当前心跳包时间间隔CurHeart进行心跳测试的过程。如果SuccessHeart 心跳失败次数小于第二预定失败次数,则说明暂时还不足以判定该稳定心跳包时间间隔 SuccessHeart是否合适,返回继续采用稳定心跳包时间间隔SuccessHeart发送心跳包。该 第二预定失败次数,可以基于实际需要进行设定,在本发明的具体示例中,该第二预定失败 次数可以设置为5次。
[0071] 据此,在后台稳定态,是在用稳定心跳包时间间隔发送心跳包失败的次数连续达 到第二预定失败次数时,才判定后台稳定态不可信,需要进入自适应计算态重新确定稳定 心跳包时间间隔。从而避免了快速变化的网络环境而产生的不利影响,例如地铁、列车等 等。
[0072] 在图4所示的示例中,在将当前心跳包时间间隔CurHeart设置为预设最小心跳包 时间间隔MinHeart后,可先进行第一预定成功次数的延迟心跳测试,在确定网络处于稳定 状态后,再进入用当前心跳包时间间隔进行心跳测试的自适应计算过程,以尽量保证测试 结果的可靠性。图5中以三次延迟心跳测试为例,示出了一个具体示例中的延迟心跳测试 实施例的流程示意图。
[0073] 图5所示中,以最小心跳包时间间隔为4. 5分钟为例,显示了在没有达到稳定网络 环境时,会一直使用4. 5分钟进行心跳直到满足3次连续测试条件。图5所示中,是先以一 次完整测试进行说明,再以不能达到稳定测试环境的情况下的切换过程进行说明。当然,本 领域技术人员可以理解的是,图5所示中仅仅只是一种示例性说明,具体的延迟心跳测试 的次数也可以设置为其他次数,最小心跳包时间间隔也可以设置为其他值。
[0074] 通过使用预定次数的延迟心跳测试,不仅可以剔除偶然失败和网络变化较大的情 况(如地铁),使测试结果相对可靠,而且,在网络波动较大的情况下,采用预设最小心跳包 时间间隔进行心跳(例如图5中所示的4. 5分钟),也可以保证收取消息的及时性。
[0075] 在上述根据当前心跳包时间间隔确定稳定心跳包时间间隔时,由于当前心跳包时 间间隔的心跳测试已经失败,说明用当前心跳包时间间隔来发送心跳包是不合理的,因此, 可以直接将上一次的当前心跳包时间间隔设定为稳定心跳包时间间隔,或者也可以是用当 前心跳包时间间隔减去上述预定心跳增加步长得到的差值作为稳定心跳包时间间隔。
[0076] 为了避免直接将上一次的当前心跳包时间间隔设定为稳定心跳包时间间隔时可 能会靠近心跳包时间间隔的临界值,进而影响到心跳包发送的成功率以及心跳保活的稳定 性,在本发明的一个具体示例中,可以是将上一次的当前心跳包时间间隔减去预设稳定心 跳步长所得到的差值作为稳定心跳包时间间隔。
[0077] 根据上述本发明的方案,在针对该应用建立了一个新的连接时,针对该新的连接, 可以先采用预设最小心跳包时间间隔发送心跳包,并在采用该预设最小心跳包时间间隔发 送心跳包连续成功第三预定成功次数后,再采用上述稳定心跳包时间间隔发送心跳包,以 在确定新建的连接处于稳定状态后,再采用上述确定的稳定心跳包时间间隔发送心跳包。 其中,该第三预定成功次数,可以根据实际需要做不同的设定,在本发明的一个具体示例 中,该第三预定成功次数可以与上述第一预定成功次数相同。
[0078] 根据上述本发明的各示例,图6中示出了一个具体示例中的动态调整心跳包时间 间隔的流程示意图。在该示例中,是自前台活跃态开始进行说明。
[0079] 如图6所示,在前台活跃态,即应用处于终端前台、且终端屏幕亮屏时,采用预设 最小心跳包时间间隔发送心跳包。并持续监测应用所处的状态。
[0080] 在监测到应用进入后台状态或者终端处于前台关屏状态时,以预设最小心跳包时 间间隔作为当前心跳包时间间隔发送心跳包,且维持预定时间段后,或者是以预设最小心 跳包时间间隔作为当前心跳包时间间隔发送心跳包连续成功第一预定成功次数后,以预设 最小心跳包时间间隔作为当前心跳包时间间隔进行心跳测试。
[0081] 若心跳测试成功,则判定满足测试成功条件,将当前心跳包时间间隔加上预定心 跳增加步长作为新的当前心跳包时间间隔,即将当前心跳包时间间隔进行递进增加,然后 返回用当前心跳包时间间隔进行心跳测试的步骤。
[0082] 若心跳测试不成功,则将当前心跳包时间间隔心跳失败次数加1后,判断是否大 于或者等于低于预设失败次数:若否,则返回用当前心跳包时间间隔进行心跳测试的步骤; 若是,则判定满足测试失败条件,并根据当前心跳包时间间隔确定稳定心跳包时间间隔,具 体确定时,可以直接将上一次的当前心跳包时间间隔确定为稳定心跳包时间间隔,也可以 是将当前心跳包时间间隔减去预定心跳增加步长所得的值(实际上就是上一次的当前心 跳包时间间隔)确定为稳定心跳包时间间隔。为了避免临界值,也可以是将上一次的心跳 包时间间隔减去预设稳定心跳步长所得到的差值作为稳定心跳包时间间隔。
[0083] 然后,即可用采用稳定心跳包时间间隔发送心跳包,并监测发送心跳包的状态。
[0084] 若发送心跳包成功,则说明能够顺利发送心跳包,说明该稳定心跳包时间间隔是 可信的,将稳定心跳包时间间隔心跳失败次数清零后,返回上述用稳定心跳包时间间隔发 送心跳包的步骤。
[0085] 若发送心跳包失败,则将稳定心跳包时间间隔心跳失败次数加1后,判断是否大 于或者等于第二预定失败次数:若否,则说明该稳定心跳包时间间隔还不一定是不可信的, 返回上述用稳定心跳包时间间隔发送心跳包的步骤;若是,则说明该稳定心跳包时间间隔 已经不合适了,将预设最小心跳包时间间隔设定为当前心跳包时间间隔后,返回上述用当 前心跳包时间将进行心跳测试的步骤。
[0086] 为了剔除偶然失败和网络变化较大的情况(如地铁),使测试结果相对可靠,以及 保证网络波动较大的情况收取消息的及时性,在将预设最小心跳包时间间隔设定为当前心 跳包时间间隔后,可以先进行一定次数(例如3次、5次等)的延迟心跳测试,并在延迟心跳 测试成功后,再进入上述用当前心跳包时间间隔进行测试的步骤。
[0087] 图7中示出了一个具体示例中的动态调整心跳包时间间隔的流程示意图。与图6 所示的示例类似,在该示例中,是自前台活跃态开始进行说明。与图6中的示例不同的地方 在于,在该示例中,是以通过统计的方式确定是否满足测试成功条件和测试失败条件为例 进行说明。
[0088] 如图7所示,在前台活跃态,即应用处于终端前台、且终端屏幕亮屏时,采用预设 最小心跳包时间间隔发送心跳包。并持续监测应用所处的状态。
[0089] 在监测到应用进入后台状态或者终端处于前台关屏状态时,以预设最小心跳包时 间间隔作为当前心跳包时间间隔发送心跳包,且维持预定时间段后,或者是以预设最小心 跳包时间间隔作为当前心跳包时间间隔发送心跳包连续成功第一预定成功次数后,以预设 最小心跳包时间间隔作为当前心跳包时间间隔进行心跳测试。
[0090] 若心跳测试成功,则将当前心跳包时间间隔心跳成功次数加1。
[0091] 若心跳测试失败,则将当前心跳包时间间隔心跳失败次数加1。
[0092] 然后判断当前心跳包时间间隔心跳测试次数是否大于或者等于预定测试次数:
[0093] 若否,即当前心跳包时间间隔心跳测试次数小于预定测试次数,则返回继续采用 当前心跳包会见间隔进行心跳测试;
[0094] 若是,即当前心跳包时间间隔心跳测试次数大于或者等于预定测试次数,则根据 上述当前心跳包时间间隔心跳成功次数、预定测试次数确定当前心跳包时间间隔心跳成功 率,并判断该当前心跳包时间间隔心跳成功率是否大于或者等于预定成功率门限值。
[0095] 若当前心跳包时间间隔心跳成功率大于或者等于预定成功率门限值,则判定满足 测试成功条件,将当前心跳包时间间隔加上预定心跳增加步长作为新的当前心跳包时间间 隔,即将当前心跳包时间间隔进行递进增加,然后返回用当前心跳包时间间隔进行心跳测 试的步骤。
[0096] 若当前心跳包时间间隔心跳成功率小于预定成功率门限值,则判定满足测试失败 条件,并根据当前心跳包时间间隔确定稳定心跳包时间间隔,具体确定时,可以直接将上一 次的当前心跳包时间间隔确定为稳定心跳包时间间隔,也可以是将当前心跳包时间间隔减 去预定心跳增加步长所得的值(实际上就是上一次的当前心跳包时间间隔)确定为稳定心 跳包时间间隔。为了避免临界值,也可以是将上一次的心跳包时间间隔减去预设稳定心跳 步长所得到的差值作为稳定心跳包时间间隔。
[0097] 然后即可采用稳定心跳包时间间隔发送心跳包,并监测发送心跳包的状态。
[0098] 若发送心跳包成功,则说明能够顺利发送心跳包,说明该稳定心跳包时间间隔是 可信的,将稳定心跳包时间间隔心跳失败次数清零后,返回上述用稳定心跳包时间间隔发 送心跳包的步骤。
[0099] 若发送心跳包失败,则将稳定心跳包时间间隔心跳失败次数加1后,判断是否大 于或者等于第二预定失败次数:若否,则说明该稳定心跳包时间间隔还不一定是不可信的, 返回上述用稳定心跳包时间间隔发送心跳包的步骤;若是,则说明该稳定心跳包时间间隔 已经不合适了,将预设最小心跳包时间间隔设定为当前心跳包时间间隔后,返回上述用当 前心跳包时间将进行心跳测试的步骤。
[0100] 为了剔除偶然失败和网络变化较大的情况(如地铁),使测试结果相对可靠,以及 保证网络波动较大的情况收取消息的及时性,在将预设最小心跳包时间间隔设定为当前心 跳包时间间隔后,可以先进行一定次数(例如3次、5次等)的延迟心跳测试,并在延迟心跳 测试成功后,再进入上述用当前心跳包时间间隔进行测试的步骤。
[0101] 需要说明的是,图7所示的示例中,是以同时记录当前心跳包时间间隔心跳成功 次数、当前心跳包时间间隔失败次数为例进行说明,在当前心跳包时间间隔心跳成功率来 对是否满足测试成功条件、测试失败条件进行判断的情况下,也可以不记录当前心跳包时 间间隔失败次数,只要知晓当前心跳包时间间隔心跳成功次数、以及已经测试的测试次数 即可。本领域技术人员可以推导出的是,基于上述原理,也可以只记录当前心跳包时间间隔 失败次数以及已经测试的测试次数,并通过计算当前心跳包时间间隔心跳失败率,并将该 当前心跳包时间间隔心跳失败率与预先设定的预定失败率门限值进行判断,在此不予详加 赘述。
[0102] 基于上述与上述本发明的智能心跳保活方法相同的思想,本发明还提供一种智能 心跳包括系统。图8中示出了本发明的智能心跳保活系统实施例的结构示意图。
[0103] 如图8所示,在该示例中,本发明的智能心跳保活系统包括有:
[0104] 监测模块801,用于监测是否满足智能心跳自适应计算条件;
[0105] 心跳测试模块802,用于在所述监测模块801监测到满足自适应计算条件时,或者 根据步长增加模块804的结果,采用当前心跳包时间间隔进行心跳测试;
[0106] 测试成功条件判定模块803,用于根据所述心跳测试模块802的测试结果判定是 否满足测试成功条件;
[0107] 步长增加模块804,用于在所述测试成功条件判定模块803判定满足测试成功条 件时,将当前心跳包时间间隔加上预定心跳增加步长作为新的当前心跳包时间间隔;
[0108] 测试失败条件判定模块805,用于根据所述心跳测试模块802的测试结果判定是 否满足测试失败条件;
[0109] 稳定心跳包确定模块806,用于在所述测试失败条件判定模块805判定满足测试 失败条件时,根据当前心跳包时间间隔确定稳定心跳包时间间隔。
[0110] 根据本发明实施例的系统,具体的工作原理可以是如下所述:监测模块801监测 是否满足智能心跳自适应计算条件,并在监测到满足时,由心跳测试模块802采用当前心 跳包时间间隔进行心跳测试,测试成功条件判定模块803、测试失败条件判定模块805分别 根据心跳测试模块802的测试结果判定是否满足测试成功条件、测试失败条件,在测试成 功条件判定模块803判定满足测试成功条件时,步长增加模块804将当前心跳包时间间隔 加上预定心跳增加步长作为新的当前心跳包时间间隔,并将该新的当前心跳包时间间隔传 输给心跳测试模块802继续进行心跳测试,在测试失败条件判定模块805判定满足测试失 败条件时,稳定心跳包确定模块806根据当前心跳包时间间隔确定稳定心跳包时间间隔, 在后续过程中,即可采用该稳定心跳包时间间隔发送心跳包。
[0111] 根据上述本发明实施例的系统,其是通过对智能心跳自适应计算条件进行监测, 并在满足智能心跳自适应计算条件时,通过进行心跳测试逐步对心跳包时间间隔进行调 整,直至找到合适的稳定心跳包时间间隔,从而不仅可以得到与当前网络环境相适应的、能 保持网络连接的尽可能大的心跳包时间间隔,由于心跳包时间间隔是尽可能大的,因而也 可以在一定程度上节省电量、流量以及网络资源。
[0112] 其中,上述监测模块801,可以是在在监测到应用处于后台状态或者终端处于前台 关屏状态时,判定满足智能心跳自适应计算条件。
[0113] 基于上述本发明的智能心跳保活系统,图9中示出了本发明一个具体示例中的智 能心跳保活系统的结构示意图。图9所示中,该智能心跳保活系统包括有监测模块801、测 试前期处理模块808、心跳测试模块802、测试成功条件判定模块803、步长增加模块804、测 试失败条件判定模块805、稳定心跳包确定模块806、稳定心跳状态统计模块807。在不同的 实现方式下,智能心跳保活系统所包含的各模块可能会有所不同,以下分别就其中的几种 方式进行举例说明。
[0114] 在其中一个示例中,该智能心跳保活系统可以仅包括上述监测模块801、心跳测试 模块802、测试成功条件判定模块803、步长增加模块804、测试失败条件判定模块805、稳定 心跳包确定模块806、稳定心跳状态统计模块807。
[0115] 其中,上述稳定心跳状态统计模块807,用于记录用稳定心跳包时间间隔发送心跳 包连续失败的次数;
[0116] 此时,上述监测模块801,还可以是在检测到稳态心跳统计模块807记录的连续失 败的次数大于或者等于第二预定失败次数时,判定满足智能心跳自适应计算条件。
[0117] 具体工作时,监测模块801监测是否满足智能心跳自适应计算条件,并在监测到 满足时(例如应用处于后台状态或者终端处于前台关屏状态),由心跳测试模块802采用 当前心跳包时间间隔进行心跳测试,测试成功条件判定模块803、测试失败条件判定模块 805分别根据心跳测试模块802的测试结果判定是否满足测试成功条件、测试失败条件,在 测试成功条件判定模块803判定满足测试成功条件时,步长增加模块804将当前心跳包时 间间隔加上预定心跳增加步长作为新的当前心跳包时间间隔,并将该新的当前心跳包时间 间隔传输给心跳测试模块802继续进行心跳测试,在测试失败条件判定模块805判定满足 测试失败条件时,稳定心跳包确定模块806根据当前心跳包时间间隔确定稳定心跳包时间 间隔,在后续过程中,即可采用该稳定心跳包时间间隔发送心跳包。稳定心跳状态统计模块 807记录用稳定心跳包时间间隔发送心跳包连续失败的次数,并在记录的连续失败的次数 大于或者等于第二预定失败次数时,监测模块801认为满足智能心跳自适应计算条件,由 心跳测试模块802采用当前心跳包时间间隔进行心跳测试,重复上述过程。此时,由于该稳 定心跳包时间间隔已经不可信,心跳测试模块802可以是将预设最小心跳包时间间隔设定 为当前心跳包时间间隔进行心跳测试。
[0118] 在另一个具体示例中,该智能心跳保活系统可以仅包括上述监测模块801、测试前 期处理模块808、心跳测试模块802、测试成功条件判定模块803、步长增加模块804、测试失 败条件判定模块805、稳定心跳包确定模块806。
[0119] 其中,上述测试前期处理模块808,用于在监测模块801监测到满足自适应计算条 件后,采用预设最小心跳包时间间隔发送心跳包的方式维持预定时间段;
[0120] 此时,上述心跳测试模块802,可以是在测试前期处理模块808采用预设最小心 跳包时间间隔发送心跳包的方式维持预定时间段后,采用当前心跳包时间间隔进行心跳测 试。
[0121] 具体工作时,监测模块801监测是否满足智能心跳自适应计算条件,并在监测到 满足时(例如应用处于后台状态或者终端处于前台关屏状态),测试前期处理模块808采 用预设最小心跳包时间间隔发送心跳包的方式维持预定时间段后,由心跳测试模块802采 用当前心跳包时间间隔进行心跳测试,测试成功条件判定模块803、测试失败条件判定模块 805分别根据心跳测试模块802的测试结果判定是否满足测试成功条件、测试失败条件,在 测试成功条件判定模块803判定满足测试成功条件时,步长增加模块804将当前心跳包时 间间隔加上预定心跳增加步长作为新的当前心跳包时间间隔,并将该新的当前心跳包时间 间隔传输给心跳测试模块802继续进行心跳测试,在测试失败条件判定模块805判定满足 测试失败条件时,稳定心跳包确定模块806根据当前心跳包时间间隔确定稳定心跳包时间 间隔,在后续过程中,即可采用该稳定心跳包时间间隔发送心跳包。
[0122] 在另外一种实现方式中,上述测试前期处理模块808,用于在监测模块801监测到 满足自适应计算条件后,采用预设最小心跳包时间间隔发送心跳包,并统计发送心跳包连 续成功的次数;
[0123] 此时,上述心跳测试模块802,可以是在测试前期处理模块808记录的发送心跳包 连续成功的次数大于或者等于第一预定成功次数时,采用当前心跳包进行心跳测试。
[0124] 具体工作时,监测模块801监测是否满足智能心跳自适应计算条件,并在监测到 满足时(例如应用处于后台状态或者终端处于前台关屏状态),测试前期处理模块808采用 预设最小心跳包时间间隔发送心跳包,且在连续成功第一预定成功次数后,由心跳测试模 块802采用当前心跳包时间间隔进行心跳测试,测试成功条件判定模块803、测试失败条件 判定模块805分别根据心跳测试模块802的测试结果判定是否满足测试成功条件、测试失 败条件,在测试成功条件判定模块803判定满足测试成功条件时,步长增加模块804将当前 心跳包时间间隔加上预定心跳增加步长作为新的当前心跳包时间间隔,并将该新的当前心 跳包时间间隔传输给心跳测试模块802继续进行心跳测试,在测试失败条件判定模块805 判定满足测试失败条件时,稳定心跳包确定模块806根据当前心跳包时间间隔确定稳定心 跳包时间间隔,在后续过程中,即可采用该稳定心跳包时间间隔发送心跳包。
[0125] 在其中一种工作方式中,该测试前期处理模块808,用于在监测模块801监测到满 足自适应计算条件时,将当前心跳包时间间隔设定为预设最小心跳包时间间隔。此时,上述 心跳测试模块802根据测试前期处理模块808确定的当前心跳包时间间隔进行测试。
[0126] 具体工作时,监测模块801监测是否满足智能心跳自适应计算条件,并在监测到 满足时(例如应用处于后台状态或者终端处于前台关屏状态),测试前期处理模块808将当 前心跳包时间间隔设定为预设最小心跳包时间间隔,由心跳测试模块802采用当前心跳包 时间间隔进行心跳测试,测试成功条件判定模块803、测试失败条件判定模块805分别根据 心跳测试模块802的测试结果判定是否满足测试成功条件、测试失败条件,在测试成功条 件判定模块803判定满足测试成功条件时,步长增加模块804将当前心跳包时间间隔加上 预定心跳增加步长作为新的当前心跳包时间间隔,并将该新的当前心跳包时间间隔传输给 心跳测试模块802继续进行心跳测试,在测试失败条件判定模块805判定满足测试失败条 件时,稳定心跳包确定模块806根据当前心跳包时间间隔确定稳定心跳包时间间隔,在后 续过程中,即可采用该稳定心跳包时间间隔发送心跳包。
[0127] 在另一个具体示例中,该智能心跳保活系统可以同时包括上述监测模块801、测试 前期处理模块808、心跳测试模块802、测试成功条件判定模块803、步长增加模块804、测试 失败条件判定模块805、稳定心跳包确定模块806、稳定心跳状态统计模块807。
[0128] 基于如上所述的测试前期处理模块808的不同的处理方式,具体的工作方式也会 有所不同,以下结合其中的几种工作原理进行说明。
[0129] 在其中一种工作方式中:具体工作时,监测模块801监测是否满足智能心跳自适 应计算条件,并在监测到满足时(例如应用处于后台状态或者终端处于前台关屏状态),测 试前期处理模块808采用预设最小心跳包时间间隔发送心跳包的方式维持预定时间段后 或者是采用预设最小心跳包时间间隔发送心跳包且连续成功第一预定成功次数后,由心跳 测试模块802采用当前心跳包时间间隔进行心跳测试,测试成功条件判定模块803、测试失 败条件判定模块805分别根据心跳测试模块802的测试结果判定是否满足测试成功条件、 测试失败条件,在测试成功条件判定模块803判定满足测试成功条件时,步长增加模块804 将当前心跳包时间间隔加上预定心跳增加步长作为新的当前心跳包时间间隔,并将该新的 当前心跳包时间间隔传输给心跳测试模块802继续进行心跳测试,在测试失败条件判定模 块805判定满足测试失败条件时,稳定心跳包确定模块806根据当前心跳包时间间隔确定 稳定心跳包时间间隔,在后续过程中,即可采用该稳定心跳包时间间隔发送心跳包。稳定心 跳状态统计模块807记录用稳定心跳包时间间隔发送心跳包连续失败的次数,并在记录的 连续失败的次数大于或者等于第二预定失败次数时,监测模块801认为满足智能心跳自适 应计算条件,测试前期处理模块808采用预设最小心跳包时间间隔发送心跳包的方式维持 预定时间段后或者是采用预设最小心跳包时间间隔发送心跳包且连续成功第一预定成功 次数后,由心跳测试模块802采用预设最小心跳包时间间隔作为当前心跳包时间间隔进行 心跳测试,重复上述过程。
[0130] 基于图9中所示的本发明的智能心跳保活系统,图10、图11分别示出了一个具体 示例中的测试成功条件判定模块803、测试失败条件判定模块805的结构示意图。
[0131] 如图10所示,在该示例中,该测试成功条件判定模块803包括:
[0132] 第二测试结果统计模块8031,用于记录采用当前心跳包时间间隔进行心跳测试连 续成功的次数;
[0133] 第一结果判定模块8032,用于在第二测试结果统计模块8031记录的连续成功的 次数大于或者等于第二预定成功次数时,判定满足测试成功条件。
[0134] 其中,上述第二预定成功次数,可以设置为1次,也可以设置为其他次数,例如3 次、5次等等,在具体应用中可以做不同设定。
[0135] 如图11所示,在该示例中,该测试失败条件判定模块805包括:
[0136] 第三测试结果统计模块8051,用于记录采用当前心跳包时间间隔进行心跳测试累 积失败的次数;
[0137] 第二结果判定模块8052,用于在第三测试结果统计模块8051记录的累积的心跳 测试累积失败的次数大于或者等于第一预定失败次数时,判定满足测试失败条件。
[0138] 其中,上述第一预定失败次数,基于实际应用需要可以做不同的设定,例如1次、3 次、5次等等,具体应用中可以做不同的设定。
[0139] 基于上述本发明的智能心跳保活系统,图12中示出了本发明的另一个具体示例 中的智能心跳保活系统的结构示意图。图12所示中,该智能心跳保活系统包括有监测模块 801、测试前期处理模块808、心跳测试模块802、测试成功条件判定模块803、步长增加模块 804、测试失败条件判定模块805、稳定心跳包确定模块806、稳定心跳状态统计模块807以 及第一测试结果统计模块809。
[0140] 其中,上述第一测试结果统计模块809,用于记录采用当前心跳包时间间隔进行预 定测试次数的心跳测试的测试成功次数以及测试失败次数,并根据测试成功次数和测试失 败次数确定成功率;
[0141] 此时,上述测试成功条件判定模块803,用于在测试结果统计模块809的确定的成 功率大于或者等于预定成功率门限值时,判定满足测试成功条件。
[0142] 所述测试失败条件判定模块805,用于在测试结果统计模块809的确定的成功率 小于预定成功率门限值时,判定满足测试失败条件。
[0143] 在不同的实现方式下,智能心跳保活系统所包含的各模块可能会有所不同,以下 分别就其中的几种方式进行举例说明。
[0144] 在其中一个示例中,该智能心跳保活系统可以仅包括上述监测模块801、心跳测试 模块802、第一测试结果统计模块809、测试成功条件判定模块803、步长增加模块804、测试 失败条件判定模块805、稳定心跳包确定模块806。
[0145] 具体工作时,监测模块801监测是否满足智能心跳自适应计算条件,并在监测到 满足时(例如应用处于后台状态或者终端处于前台关屏状态),由心跳测试模块802采用 当前心跳包时间间隔进行心跳测试,第一测试结果统计模块809记录采用当前心跳包时间 间隔进行预定测试次数的心跳测试的测试成功次数以及测试失败次数,并根据测试成功次 数和测试失败次数确定成功率,测试成功条件判定模块803、测试失败条件判定模块805分 别根据第一测试结果统计模块809确定的成功率判定是否满足测试成功条件、测试失败条 件,在测试成功条件判定模块803判定满足测试成功条件时,步长增加模块804将当前心跳 包时间间隔加上预定心跳增加步长作为新的当前心跳包时间间隔,并将该新的当前心跳包 时间间隔传输给心跳测试模块802继续进行心跳测试,在测试失败条件判定模块805判定 满足测试失败条件时,稳定心跳包确定模块806根据当前心跳包时间间隔确定稳定心跳包 时间间隔,在后续过程中,即可采用该稳定心跳包时间间隔发送心跳包。
[0146] 在另一个示例中,该智能心跳保活系统可以仅包括上述监测模块801、心跳测试模 块802、第一测试结果统计模块809、测试成功条件判定模块803、步长增加模块804、测试失 败条件判定模块805、稳定心跳包确定模块806、稳定心跳状态统计模块807。
[0147] 具体工作时,监测模块801监测是否满足智能心跳自适应计算条件,并在监测到 满足时(例如应用处于后台状态或者终端处于前台关屏状态),由心跳测试模块802采用 当前心跳包时间间隔进行心跳测试,第一测试结果统计模块809记录采用当前心跳包时间 间隔进行预定测试次数的心跳测试的测试成功次数以及测试失败次数,并根据测试成功次 数和测试失败次数确定成功率,测试成功条件判定模块803、测试失败条件判定模块805分 别根据第一测试结果统计模块809确定的成功率判定是否满足测试成功条件、测试失败条 件,在测试成功条件判定模块803判定满足测试成功条件时,步长增加模块804将当前心跳 包时间间隔加上预定心跳增加步长作为新的当前心跳包时间间隔,并将该新的当前心跳包 时间间隔传输给心跳测试模块802继续进行心跳测试,在测试失败条件判定模块805判定 满足测试失败条件时,稳定心跳包确定模块806根据当前心跳包时间间隔确定稳定心跳包 时间间隔,在后续过程中,即可采用该稳定心跳包时间间隔发送心跳包。稳定心跳状态统 计模块807记录用稳定心跳包时间间隔发送心跳包连续失败的次数,并在记录的连续失败 的次数大于或者等于第二预定失败次数时,监测模块801认为满足智能心跳自适应计算条 件,由心跳测试模块802采用预设最小心跳包时间间隔作为当前心跳包时间间隔进行心跳 测试,重复上述过程。
[0148] 在另一个具体示例中,该智能心跳保活系统可以仅包括上述监测模块801、测试前 期处理模块808、心跳测试模块802、第一测试结果统计模块809、测试成功条件判定模块 803、步长增加模块804、测试失败条件判定模块805、稳定心跳包确定模块806。
[0149] 具体工作时,监测模块801监测是否满足智能心跳自适应计算条件,并在监测到 满足时(例如应用处于后台状态或者终端处于前台关屏状态),测试前期处理模块808采用 预设最小心跳包时间间隔发送心跳包的方式维持预定时间段后或者是采用预设最小心跳 包时间间隔发送心跳包且连续成功第一预定成功次数后,由心跳测试模块802采用当前心 跳包时间间隔进行心跳测试,第一测试结果统计模块809记录采用当前心跳包时间间隔进 行预定测试次数的心跳测试的测试成功次数以及测试失败次数,并根据测试成功次数和测 试失败次数确定成功率,测试成功条件判定模块803、测试失败条件判定模块805分别根据 第一测试结果统计模块809确定的成功率判定是否满足测试成功条件、测试失败条件,在 测试成功条件判定模块803判定满足测试成功条件时,步长增加模块804将当前心跳包时 间间隔加上预定心跳增加步长作为新的当前心跳包时间间隔,并将该新的当前心跳包时间 间隔传输给心跳测试模块802继续进行心跳测试,在测试失败条件判定模块805判定满足 测试失败条件时,稳定心跳包确定模块806根据当前心跳包时间间隔确定稳定心跳包时间 间隔,在后续过程中,即可采用该稳定心跳包时间间隔发送心跳包。
[0150] 在另一个具体示例中,该智能心跳保活系统可以同时包括上述监测模块801、测试 前期处理模块808、心跳测试模块802、第一测试结果统计模块809、测试成功条件判定模块 803、步长增加模块804、测试失败条件判定模块805、稳定心跳包确定模块806、稳定心跳状 态统计模块807。
[0151] 具体工作时,监测模块801监测是否满足智能心跳自适应计算条件,并在监测到 满足时(例如应用处于后台状态或者终端处于前台关屏状态),测试前期处理模块808采 用预设最小心跳包时间间隔发送心跳包的方式维持预定时间段后或者是采用预设最小心 跳包时间间隔发送心跳包且连续成功第一预定成功次数后,由心跳测试模块802采用当前 心跳包时间间隔进行心跳测试,第一测试结果统计模块809记录采用当前心跳包时间间隔 进行预定测试次数的心跳测试的测试成功次数以及测试失败次数,并根据测试成功次数和 测试失败次数确定成功率,测试成功条件判定模块803、测试失败条件判定模块805分别根 据第一测试结果统计模块809确定的成功率判定是否满足测试成功条件、测试失败条件, 在测试成功条件判定模块803判定满足测试成功条件时,步长增加模块804将当前心跳包 时间间隔加上预定心跳增加步长作为新的当前心跳包时间间隔,并将该新的当前心跳包时 间间隔传输给心跳测试模块802继续进行心跳测试,在测试失败条件判定模块805判定满 足测试失败条件时,稳定心跳包确定模块806根据当前心跳包时间间隔确定稳定心跳包时 间间隔,在后续过程中,即可采用该稳定心跳包时间间隔发送心跳包。稳定心跳状态统计模 块807记录用稳定心跳包时间间隔发送心跳包连续失败的次数,并在记录的连续失败的次 数大于或者等于第二预定失败次数时,监测模块801认为满足智能心跳自适应计算条件, 测试前期处理模块808采用预设最小心跳包时间间隔发送心跳包的方式维持预定时间段 后或者是采用预设最小心跳包时间间隔发送心跳包且连续成功第一预定成功次数后,由心 跳测试模块802采用预设最小心跳包时间间隔作为当前心跳包时间间隔进行心跳测试,重 复上述过程。
[0152] 本领域普通技术人员可以理解的是,实现上述本发明实施例方法中的全部或部 分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机 可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的 存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体 (Random Access Memory, RAM)等。因此,根据上述本发明实施例方案,本发明还提供一种 包含计算机可读程序的存储介质,当该存储介质中的计算机可读程序执行时,可以实现上 述任何一种方式中的本发明的智能心跳保活方法。
[0153] 如上所述的本发明实施例的方法,可以以软件的形式安装于相应的机器设备上, 并在该软件运行时通过控制相关的处理设备来完成上述的智能心跳保活的过程。相应地, 上述智能心跳保活系统可以是设置安装在相应的终端设备上,也可以是相应的终端设备本 身,这里的终端设备可以是手机、平板电脑、PDA(Personal Digital Assistant,个人数字 助理)、车载电脑等任意终端设备。
[0154] 据此,基于上述本发明的方案,本发明还提供一种终端设备,该终端设备可以是手 机、平板电脑、PDA (Personal Digital Assistant,个人数字助理)、车载电脑等任意一种可 以进行路径导航的终端设备。
[0155] 据此,以下以其中一种终端设备为例,图13中示出了该终端设备的部分结构框 图。参考图13,该终端设备包括:存储器1310、输入单元1320、显示单元1330、处理器1340、 通信模块1350等部件。本领域技术人员可以理解,图13中示出的结构,仅仅是与本发明实 施例方案相关的部分结构的框图,并不构成对应用在本发明方案中的终端设备的限定,具 体的终端设备可以包括比图示中更多或更少的部件,或者组合某些部件,或者不同的部件 布置。
[0156] 下面结合图13对该终端设备的各个构成部件进行具体的介绍。
[0157] 存储器1310可用于存储软件程序以及模块,处理器1340通过运行存储在存储器 1310的软件程序以及模块,从而执行与该终端设备相关的各种功能应用以及数据处理。存 储器1310可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少 一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根 据终端设备的使用所创建的数据等。此外,存储器1310可以包括高速随机存取存储器,还 可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储 器件。
[0158] 输入单元1320可用于接收输入的数字、字符或者其他信息,以及产生与终端设备 的用户设置以及功能控制有关的键信号输入。具体在本发明实施例的方案中,可以通过该 输入单元1320来接受用户确定的目的地信息。
[0159] 具体地,以终端设备为手机为例,该输入单元1320可包括触控面板以及其他输入 设备。触控面板,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手 指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并根据预先设 定的程式驱动相应的连接装置。可选的,触控面板可包括触摸检测装置和触摸控制器两个 部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送 给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送 给处理器1340,并能接收处理器1340发来的命令并加以执行。此外,可以采用电阻式、电容 式、红外线以及表面声波等多种类型实现触控面板。除了触控面板,输入单元1320还可以 包括其他输入设备。具体地,其他输入设备可以包括但不限于物理键盘、功能键(比如音量 控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
[0160] 显示单元1330可用于显示由用户输入的信息或提供给用户的信息以及各种 菜单。显示单元1330可包括显示面板,可选的,可以采用液晶显示器(Liquid Crystal Display, IXD)、有机发光二极管(Organic Light-Emitting Diode, 0LED)等形式来配置显 示面板。
[0161] 终端设备通过通信模块1350可以实现与服务器之间的通信,该通信模块1350可 以采用任何可能的方式实现,例如WiFi模块、蓝牙通信、光纤通信等等,通过通信模块1350 实现了终端设备与服务器之间的通信,从而可以使得终端设备能够向服务器发送相关信 息,并接收由服务器返回的相关信息。
[0162] 处理器1340是终端设备的控制中心,利用各种接口和线路连接整个终端设备的 各个部分,通过运行或执行存储在存储器1310内的软件程序和/或模块,以及调用存储在 存储器1310内的数据,执行终端设备的各种功能和数据处理,从而对终端设备进行整体监 控。可选的,处理器1340可包括一个或多个处理单元。
[0163] 以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并 不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员 来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保 护范围。因此,本发明专利的保护范围应以所附权利要求为准。
【权利要求】
1. 一种智能心跳保活方法,其特征在于,包括步骤: 在监测到满足智能心跳自适应计算条件时,采用当前心跳包时间间隔进行心跳测试, 并在满足测试成功条件时,将当前心跳包时间间隔加上预定心跳增加步长作为新的当前心 跳包时间间隔,返回采用当前心跳包时间间隔进行心跳测试的步骤,在满足测试失败条件 时,根据当前心跳包时间间隔确定稳定心跳包时间间隔。
2. 根据权利要求1所述的智能心跳保活方法,其特征在于,在监测到满足自适应计算 条件后,以采用预设最小心跳包时间间隔发送心跳包的方式维持预定时间段后,进入所述 采用当前心跳包进行心跳测试的步骤。
3. 根据权利要求1所述的智能心跳保活方法,其特征在于,在监测到满足智能心跳自 适应计算条件后,采用预设最小心跳包时间间隔发送心跳包,且在发送心跳包连续成功第 一预定成功次数时,进入所述采用当前心跳包进行心跳测试的步骤。
4. 根据权利要求1所述的智能心跳保活方法,其特征在于,在监测到满足自适应计算 条件后,将当前心跳包时间间隔设定为预设最小心跳包时间间隔,然后进入所述采用当前 心跳包时间间隔进行心跳测试的步骤。
5. 根据权利要求1所述的智能心跳保活方法,其特征在于,在监测到应用处于后台状 态或者终端处于前台关屏状态时,判定满足智能心跳自适应计算条件。
6. 根据权利要求1所述的智能心跳保活方法,其特征在于,在用稳定心跳包时间间隔 发送心跳包、且发送心跳包连续失败第二预定失败次数时,判定满足智能心跳自适应计算 条件。
7. 根据权利要求1所述的智能心跳保活方法,其特征在于,在采用当前心跳包时间间 隔进行心跳测试且测试成功时,判定满足测试成功条件。
8. 根据权利要求1所述的智能心跳保活方法,其特征在于,在采用当前心跳包时间间 隔进行预定测试次数的心跳测试,且成功率大于或者等于预定成功率门限值时,判定满足 测试成功条件。
9. 根据权利要求1所述的智能心跳保活方法,其特征在于,在采用当前心跳包时间间 隔进行心跳测试、且连续成功第二预定成功次数时,判定满足测试成功条件。
10. 根据权利要求1所述的智能心跳保活方法,其特征在于,在采用当前心跳包时间间 隔进行心跳测试、心跳测试失败次数累积达到第一预定失败次数时,判定满足测试失败条 件。
11. 根据权利要求1所述的智能心跳保活方法,其特征在于,在采用当前心跳包时间间 隔进行预定测试次数的心跳测试,且成功率小于预定成功率门限值时,判定满足测试失败 条件。
12. 根据权利要求1所述的智能心跳保活方法,其特征在于,还包括步骤:在监测到应 用处于活跃状态时,采用预设最小心跳包时间间隔发送心跳包。
13. 根据权利要求1至12任意一项所述的智能心跳保活方法,其特征在于,所述稳定心 跳包时间间隔为上一次的当前心跳包时间间隔。
14. 根据权利要求1至12任意一项所述的智能心跳保活方法,其特征在于,所述稳定心 跳包时间间隔为上一次的当前心跳包时间间隔减去预设稳定心跳步长所得到的差值。
15. -种智能心跳保活系统,其特征在于,包括: 监测模块,用于监测是否满足智能心跳自适应计算条件; 心跳测试模块,用于在所述监测模块监测到满足自适应计算条件时,或者根据步长增 加模块的结果,采用当前心跳包时间间隔进行心跳测试; 测试成功条件判定模块,用于根据所述心跳测试模块的测试结果判定是否满足测试成 功条件; 步长增加模块,用于在所述测试成功条件判定模块判定满足测试成功条件时,将当前 心跳包时间间隔加上预定心跳增加步长作为新的当前心跳包时间间隔; 测试失败条件判定模块,用于根据所述心跳测试模块的测试结果判定是否满足测试失 败条件; 稳定心跳包确定模块,用于在所述测试失败条件判定模块判定满足测试失败条件时, 根据当前心跳包时间间隔确定稳定心跳包时间间隔。
16. 根据权利要求15所述的智能心跳保活系统,其特征在于: 还包括测试前期处理模块,用于在所述监测模块监测到满足自适应计算条件后,采用 预设最小心跳包时间间隔发送心跳包的方式维持预定时间段; 所述心跳测试模块,用于在测试前期处理模块采用预设最小心跳包时间间隔发送心跳 包的方式维持预定时间段后,采用当前心跳包时间间隔进行心跳测试。
17. 根据权利要求15所述的智能心跳保活系统,其特征在于: 还包括测试前期处理模块,用于在所述监测模块监测到满足自适应计算条件后,采用 预设最小心跳包时间间隔发送心跳包,并统计发送心跳包连续成功的次数; 所述心跳测试模块,用于在测试前期处理模块记录的发送心跳包连续成功的次数大于 或者等于第一预定成功次数时,采用当前心跳包进行心跳测试。
18. 根据权利要求15所述的智能心跳保活系统,其特征在于,还包括连接在监测模块 与心跳测试模块之间的测试前期处理模块,用于在所述监测模块监测到满足自适应计算条 件时,将当前心跳包时间间隔设定为预设最小心跳包时间间隔。
19. 根据权利要求15所述的智能心跳保活系统,其特征在于,所述监测模块在监测到 应用处于后台状态或者终端处于前台关屏状态时,判定满足智能心跳自适应计算条件。
20. 根据权利要求15所述的智能心跳保活系统,其特征在于: 还包括稳态心跳状态统计模块,用于记录用稳定心跳包时间间隔发送心跳包连续失败 的次数; 所述监测模块,在监测到稳态心跳统计模块记录的连续失败的次数大于或者等于第二 预定失败次数时,判定满足智能心跳自适应计算条件。
21. 根据权利要求15所述的智能心跳保活系统,其特征在于,所述测试成功条件判定 模块在心跳测试模块采用当前心跳包时间间隔进行心跳测试且测试成功时,判定满足测试 成功条件。
22. 根据权利要求15所述的智能心跳保活系统,其特征在于,还包括: 第一测试结果统计模块,用于记录采用当前心跳包时间间隔进行预定测试次数的心 跳测试的测试成功次数以及测试失败次数,并根据测试成功次数和测试失败次数确定成功 率; 所述测试成功条件判定模块,用于在所述测试结果统计模块的确定的成功率大于或者 等于预定成功率门限值时,判定满足测试成功条件; 所述测试失败条件判定模块,用于在所述测试结果统计模块的确定的成功率小于预定 成功率门限值时,判定满足测试失败条件。
23. 根据权利要求15所述的智能心跳保活系统,其特征在于,所述测试成功条件判定 模块包括: 第二测试结果统计模块,用于记录采用当前心跳包时间间隔进行心跳测试连续成功的 次数; 第一结果判定模块,用于在第二测试结果统计模块记录的连续成功的次数大于或者等 于第二预定成功次数时,判定满足测试成功条件。
24. 根据权利要求15所述的智能心跳保活系统,其特征在于,所述测试失败条件判定 模块包括: 第三测试结果统计模块,用于记录采用当前心跳包时间间隔进行心跳测试累积失败的 次数; 第二结果判定模块,用于在第三测试结果统计模块记录的累积的心跳测试累积失败的 次数大于或者等于第一预定失败次数时,判定满足测试失败条件。
25. 根据权利要求15至24任意一项所述的智能心跳保活系统,其特征在于,所述稳定 心跳包时间间隔为上一次的当前心跳包时间间隔。
26. 根据权利要求15至24任意一项所述的智能心跳保活系统,其特征在于,所述稳定 心跳包时间间隔为上一次的当前心跳包时间间隔减去预设稳定心跳步长所得到的差值。
【文档编号】H04L29/06GK104144159SQ201410298978
【公开日】2014年11月12日 申请日期:2014年6月26日 优先权日:2014年6月26日
【发明者】左岗, 谢春生, 叶润桂 申请人:腾讯科技(深圳)有限公司