CN106375148B - 即时通讯中的动态网络心跳处理方法及终端 - Google Patents
即时通讯中的动态网络心跳处理方法及终端 Download PDFInfo
- Publication number
- CN106375148B CN106375148B CN201610785094.7A CN201610785094A CN106375148B CN 106375148 B CN106375148 B CN 106375148B CN 201610785094 A CN201610785094 A CN 201610785094A CN 106375148 B CN106375148 B CN 106375148B
- Authority
- CN
- China
- Prior art keywords
- heartbeat
- interval
- server
- period
- data packets
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明提供一种即时通讯中的动态网络心跳处理方法及终端,包括:在终端中的即时通讯应用程序处于运行状态并且终端处于休眠/黑屏状态时,或者在终端中的即时通讯应用程序处于后台运行状态时,通过动态探测心跳模式向服务器发送心跳数据包;在终端中的即时通讯应用程序处于前台激活运行状态时,通过固定心跳模式向服务器发送心跳数据包。本发明能够及时接收消息、有效节省流量和能源。
Description
技术领域
本发明涉及即时通讯技术领域,尤其涉及一种即时通讯中的动态网络心跳处理方法及终端。
背景技术
即时通讯,及时通讯,指的是一种基于互联网的即时交流消息的业务,也称为“实时通讯”,简称为IM。允许两人或多人使用网络实时的传递文字消息,文件,语音和视频交流。
在当前移动互联网迅猛增长的时代,移动IM类应用程序层出不穷,但是做的稳定,高效,体验良好的应用产品不多。而移动IM应用程序和传统的桌面IM软件程序最大的区别在于网络环境更复杂、设备计算能力更差、能源更珍贵。
IM的应用程序的特征就是“及时”,而这点几乎所有的IM都是使用传输控制协议(Transmission Control Protocol,简称TCP)的长链接加上心跳来实现的。这个技术点可以说是及时通讯软件最难的基础技术点,尤其在移动设备上,这个技术点还关系到流量费用、能源消耗。所以完善的处理好这块技术更加重要。
现有技术使用TCP是因为TCP在连通状态下可以保证消息收发完整,及时,可靠。使用心跳的原因是为了检测TCP链路的可用性。
现有的应用大多采用的是固定的心跳间隔,而固定的心跳间隔有以下几个缺点:1、间隔设置过大,在网络发生变化时,不能尽快感知,造成接收消息不及时;2、间隔设置过小,在大部分时间做无用心跳,过多的消耗流量和能源。
鉴于此,如何提供一种即时通讯中能够及时接收消息、且有效节省流量和能源的网络心跳处理方法及终端成为目前需要解决的技术问题。
发明内容
为解决上述的技术问题,本发明提供一种即时通讯中的动态网络心跳处理方法及终端,能在网络发生变化的时候尽快探测出网络的可用性,及时接收消息,提高应用程序的使用体验,动态的探测网络心跳能够有效的节省流量和能源消耗,降低用户的使用费用。
第一方面,本发明提供一种即时通讯中的动态网络心跳处理方法,包括:
在终端中的即时通讯应用程序处于运行状态并且终端处于休眠/黑屏状态时,或者在终端中的即时通讯应用程序处于后台运行状态时,通过动态探测心跳模式向服务器发送心跳数据包;
在终端中的即时通讯应用程序处于前台激活运行状态时,通过固定心跳模式向服务器发送心跳数据包。
可选地,所述动态探测心跳模式,包括:短心跳时期的动作、心跳探测时期的动作和稳定心跳时期的动作。
可选地,所述短心跳时期的动作,包括:
当切换到一个新的网络时,使用短心跳向服务器发送心跳数据包,所述短心跳的间隔为预设第一时间段;
若连续接收到所述服务器返回的应答的次数大于预设第一阈值,则进入所述心跳探测时期。
可选地,所述心跳探测时期的动作,包括:
在进入所述心跳探测时期时,令当前心跳间隔和上一次心跳间隔均等于预设最小心跳间隔;
使用当前心跳间隔向服务器发送心跳数据包;
若接收到所述服务器返回的应答,则令上一次心跳间隔等于当前心跳间隔,然后令当前心跳间隔增加预设第二时间段;
判断当前心跳间隔是否大于等于预设最大心跳间隔;
若当前心跳间隔大于等于预设最大心跳间隔,则令当前心跳间隔等于预设最大心跳间隔,然后令上一次心跳间隔等于当前心跳间隔,然后进入稳定心跳时期;
若当前心跳间隔小于预设最大心跳间隔,则返回使用当前心跳间隔向服务器发送心跳数据包的步骤。
可选地,所述心跳探测时期的动作,还包括:
在所述使用当前心跳间隔向服务器发送心跳数据包之后,若没有接收到所述服务器返回的应答,则进入稳定心跳时期。
可选地,所述稳定心跳时期的动作,包括:
使用所述心跳探测时期最后探测出的上一次心跳间隔向服务器发送心跳数据包;
在所述使用所述心跳探测时期最后探测出的上一次心跳间隔向服务器发送心跳数据包之后,若没有接收到所述服务器返回的应答、且连续没有接收到所述服务器返回的应答的次数小于预设第二阈值,则将连续没有接收到所述服务器返回的应答的次数加1,并使用短心跳向服务器发送心跳数据包;
在使用短心跳向服务器发送心跳数据包之后,若接收到所述服务器返回的应答,则返回所述使用所述心跳探测时期最后探测出的上一次心跳间隔向服务器发送心跳数据包的步骤。
可选地,所述稳定心跳时期的动作,还包括:
在使用短心跳向服务器发送心跳数据包之后,若没有接收到所述服务器返回的应答,则返回所述将连续没有接收到所述服务器返回的应答的次数加1,并使用短心跳向服务器发送心跳数据包的步骤。
可选地,所述稳定心跳时期的动作,还包括:
在所述使用所述心跳探测时期最后探测出的上一次心跳间隔向服务器发送心跳数据包之后,若没有接收到所述服务器返回的应答、且连续没有接收到所述服务器返回的应答的次数大于预设第二阈值,则返回所述短心跳时期的开始。
可选地,所述固定心跳模式的动作,包括:
使用所述动态探测心跳模式最后探测出的上一次心跳间隔向服务器发送心跳数据包。
第二方面,本发明提供一种终端,包括:
第一发送模块,用于在终端中的即时通讯应用程序处于运行状态并且终端处于休眠/黑屏状态时,或者在终端中的即时通讯应用程序处于后台运行状态时,通过动态探测心跳模式向服务器发送心跳数据包;
第二发送模块,用于在终端中的即时通讯应用程序处于前台激活运行状态时,通过固定心跳模式向服务器发送心跳数据包。
由上述技术方案可知,本发明的即时通讯中的动态网络心跳处理方法及终端,通过在终端中的即时通讯应用程序处于运行状态并且终端处于休眠/黑屏状态时,或者在终端中的即时通讯应用程序处于后台运行状态时,通过动态探测心跳模式向服务器发送心跳数据包,在终端中的即时通讯应用程序处于前台激活运行状态时,通过固定心跳模式向服务器发送心跳数据包,由此,能在网络发生变化的时候尽快探测出网络的可用性,及时接收消息,提高应用程序的使用体验,动态的探测网络心跳能够有效的节省流量和能源消耗,降低用户的使用费用。
附图说明
图1为本发明一实施例提供的即时通讯中的动态网络心跳处理方法的流程示意图;
图2为本发明实施例提供的动态探测心跳模式与固定心跳模式之间相互转换的逻辑流程示意图;
图3为本发明实施例提供的短心跳时期的动作的逻辑流程示意图;
图4为本发明实施例提供的心跳探测时期的动作的逻辑流程示意图;
图5为本发明实施例提供的动态探测心跳模式的总逻辑流程示意图;
图6为本发明一实施例提供的终端的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他的实施例,都属于本发明保护的范围。
在现有技术中,影响TCP长链接存活的因素有以下几点:
一、网络地址转换(Network Address Translation,简称NAT)过期,现在移动运营商会在TCP连接没有数据传输超过一定的时间,会强制中断该TCP连接,这属于TCP异常终端。TCP客户端和服务器都不会立即感知到,这是造成移动IM网络中断的一个重要原因。
二、动态主机配置协议(Dynamic Host Configuration Protocol,简称DHCP)租期过期,有的安卓机型会出现该问题。
三、网络状态的变化,比如WIFI网络转移动网络、或者WIFI网络转WIFI网络等时候,会造成网络中断。
由于移动设备的能源储备有限,流量收费。所以心跳检测还需要考虑到这方面的因素。所以本发明的总体思想是结合设备运行状态动态探测计算心跳间隔的方法来解决当前IM应用程序面临的基础技术问题。
图1示出了本发明一实施例提供的即时通讯中的动态网络心跳处理方法的流程示意图,如图1所示,本实施例的即时通讯中的动态网络心跳处理方法应用于终端,具体方法如下所述。
101、在终端中的即时通讯应用程序处于运行状态并且终端处于休眠/黑屏状态时,或者在终端中的即时通讯应用程序处于后台运行状态时,通过动态探测心跳模式向服务器发送心跳数据包。
102、在终端中的即时通讯应用程序处于前台激活运行状态时,通过固定心跳模式向服务器发送心跳数据包。
在具体应用中,所述动态探测心跳模式与所述固定心跳模式之间相互转换逻辑可参考图2。
需说明的是,当前的IOS***中的应用程序一般只存在前台激活运行状态(即终端亮屏,应用程序且处于前台),所以IOS***中的应用程序只存在步骤上述102。但是,IOS***中经过苹果审批的具有后台运行权限的应用程序也可以使用上述步骤101。
可以理解的是,本实施例所述方法可以适用于各种终端类型,如所述终端可以为移动终端,也可以为桌面终端等,本实施例所述方法在移动平台上益处更大,但本实施例并不对其进行限制。
本实施例的即时通讯中的动态网络心跳处理方法,应用于终端,通过在终端中的即时通讯应用程序处于运行状态并且终端处于休眠/黑屏状态时,或者在终端中的即时通讯应用程序处于后台运行状态时通过动态探测心跳模式向服务器发送心跳数据包,在终端中的即时通讯应用程序处于前台激活运行状态时通过固定心跳模式向服务器发送心跳数据包。由此,能在网络发生变化的时候尽快探测出网络的可用性,及时接收消息,提高应用程序的使用体验,动态的探测网络心跳能够有效的节省流量和能源消耗,降低用户的使用费用。
在具体应用中,所述动态探测心跳模式,包括:短心跳时期的动作、心跳探测时期的动作和稳定心跳时期的动作。
在具体应用中,所述短心跳时期的动作,可以包括:
当切换到一个新的网络时,使用短心跳向服务器发送心跳数据包,所述短心跳的间隔为预设第一时间段;
若连续接收到所述服务器返回的应答的次数大于预设第一阈值,则进入所述心跳探测时期。
在具体应用中,举例来说,所述预设第一时间段可以优选为30秒,所述预设第一时间段可以实际情况具体设置,本实施例并不对其进行限制。
在具体应用中,举例来说,所述预设第一阈值可以优选为3次,所述预设第一阈值可以实际情况具体设置,本实施例并不对其进行限制。
可以理解的是,若在使用心跳向服务器发送心跳数据包后,接收到服务器返回的该心跳数据包对应的应答数据包,则可以确定本次心跳成功。所述短心跳时期的动作的逻辑流程图可以参考图3,图中:
用qHBSuccCount表示标识连续成功短心跳的次数,即上述连续接收到所述服务器返回的应答的次数;
用qHBSuccMaxCount表示标识连续成功心跳的最大次数,即上述预设第一阈值,当qHBSuccCount>=qHBSuccMaxCount时,转入心跳探测时期。
在具体应用中,所述心跳探测时期的动作,可以包括:
在进入所述心跳探测时期时,令当前心跳间隔和上一次心跳间隔均等于预设最小心跳间隔;
使用当前心跳间隔向服务器发送心跳数据包;
若接收到所述服务器返回的应答,则令上一次心跳间隔等于当前心跳间隔,然后令当前心跳间隔增加预设第二时间段;
判断当前心跳间隔是否大于等于预设最大心跳间隔;
若当前心跳间隔大于等于预设最大心跳间隔,则令当前心跳间隔等于预设最大心跳间隔,然后令上一次心跳间隔等于当前心跳间隔,然后进入稳定心跳时期;
若当前心跳间隔小于预设最大心跳间隔,则返回使用当前心跳间隔向服务器发送心跳数据包的步骤。
进一步地,所述心跳探测时期的动作,还可以包括:
在所述使用当前心跳间隔向服务器发送心跳数据包之后,若没有接收到所述服务器返回的应答,则进入稳定心跳时期。
具体的心跳探测时期的动作的逻辑流程图可以参考图4,图中:
用maxHBTime表示上述预设最大心跳间隔,如果心跳探测时期的心跳间隔大于该值则心跳间隔设置为maxHBTime,并且转入稳定心跳时期;
用minHBTime表示上述预设最小心跳间隔,是进入心跳探测时期第一次心跳的间隔。
用curHBTime表示上述当前心跳间隔,minHBTime≤curHBTime≤maxHBTime;
用hbTimeStep表示心跳间隔增加时长,即上述预设第二时间段,是一个固定值,取值范围可以优选为15秒~30秒,所述预设第二时间段可以实际情况具体设置,本实施例并不对其进行限制。
用lastHBTime表示上一次心跳间隔,转到稳定心跳时期后将lastHBTime作为固定心跳间隔。
以上变量单位都为秒,成功一次curHBTime增加hbTimeStep,一直到最大心跳间隔或者心跳失败,就用上一次心跳成功的间隔作为稳定心跳时期的心跳间隔。
可以理解的是,由于技术的进步,网络运营商的NAT超时可能会逐渐变大。所以心跳探测时期的maxHBTime会逐渐变大,以周为单位,在所述心跳探测时期,如果出现过连续预设次数(可以优选为三次)的探测心跳都达到maxHBTime,则将maxHBTime增加hbTimeStep秒。
在具体应用中,所述稳定心跳时期的动作,可以包括:
使用所述心跳探测时期最后探测出的上一次心跳间隔向服务器发送心跳数据包;
在所述使用所述心跳探测时期最后探测出的上一次心跳间隔向服务器发送心跳数据包之后,若没有接收到所述服务器返回的应答、且连续没有接收到所述服务器返回的应答的次数小于预设第二阈值,则将连续没有接收到所述服务器返回的应答的次数加1,并使用短心跳向服务器发送心跳数据包;
在使用短心跳向服务器发送心跳数据包之后,若接收到所述服务器返回的应答,则返回所述使用所述心跳探测时期最后探测出的上一次心跳间隔向服务器发送心跳数据包的步骤。
进一步地,所述稳定心跳时期的动作,还可以包括:
在使用短心跳向服务器发送心跳数据包之后,若没有接收到所述服务器返回的应答,则返回所述将连续没有接收到所述服务器返回的应答的次数加1,并使用短心跳向服务器发送心跳数据包的步骤。
进一步地,所述稳定心跳时期的动作,还可以包括:
在所述使用所述心跳探测时期最后探测出的上一次心跳间隔向服务器发送心跳数据包之后,若没有接收到所述服务器返回的应答、且连续没有接收到所述服务器返回的应答的次数大于预设第二阈值,则返回所述短心跳时期的开始。
在具体应用中,举例来说,所述预设第二阈值可以优选为3次,所述预设第二阈值可以实际情况具体设置,本实施例并不对其进行限制。
图5示出了动态探测心跳模式的总逻辑流程示意图,图中:
用lastFailHBCount表示连续心跳失败的次数,即在稳定心跳时期中连续没有接收到所述服务器返回的应答的次数。
在具体应用中,所述固定心跳模式的动作,可以具体包括:
使用所述动态探测心跳模式最后探测出的上一次心跳间隔向服务器发送心跳数据包。
本实施例的即时通讯中的动态网络心跳处理方法,能在网络发生变化的时候尽快探测出网络的可用性,及时接收消息,提高应用程序的使用体验,动态的探测网络心跳能够有效的节省流量和能源消耗,降低用户的使用费用。
图6示出了本发明一实施例提供的终端的结构示意图,如图6所示,本实施例的终端,包括:第一发送模块61和第二发送模块62;其中:
第一发送模块61,用于在终端中的即时通讯应用程序处于运行状态并且终端处于休眠/黑屏状态时,或者在终端中的即时通讯应用程序处于后台运行状态时,通过动态探测心跳模式向服务器发送心跳数据包;
第二发送模块62,用于在终端中的即时通讯应用程序处于前台激活运行状态时,通过固定心跳模式向服务器发送心跳数据包。
需要说明的是,对于装置/***实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本实施例的终端,能在网络发生变化的时候尽快探测出网络的可用性,及时接收消息,提高应用程序的使用体验,动态的探测网络心跳能够有效的节省流量和能源消耗,降低用户的使用费用。
本实施例的终端,可以用于执行前述图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的***或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
本发明的说明书中,说明了大量具体细节。然而能够理解的是,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本发明公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释呈反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。本发明并不局限于任何单一的方面,也不局限于任何单一的实施例,也不局限于这些方面和/或实施例的任意组合和/或置换。而且,可以单独使用本发明的每个方面和/或实施例或者与一个或更多其他方面和/或其实施例结合使用。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。
Claims (7)
1.一种即时通讯中的动态网络心跳处理方法,应用于终端,其特征在于,包括:
在终端中的即时通讯应用程序处于运行状态并且终端处于休眠/黑屏状态时,或者在终端中的即时通讯应用程序处于后台运行状态时,通过动态探测心跳模式向服务器发送心跳数据包;
在终端中的即时通讯应用程序处于前台激活运行状态时,通过固定心跳模式向服务器发送心跳数据包;
所述动态探测心跳模式,包括:短心跳时期的动作、心跳探测时期的动作和稳定心跳时期的动作;
所述短心跳时期的动作,包括:
当切换到一个新的网络时,使用短心跳向服务器发送心跳数据包,所述短心跳的间隔为预设第一时间段;
若连续接收到所述服务器返回的应答的次数大于预设第一阈值,则进入所述心跳探测时期;
所述心跳探测时期的动作,包括:
在进入所述心跳探测时期时,令当前心跳间隔和上一次心跳间隔均等于预设最小心跳间隔;
使用当前心跳间隔向服务器发送心跳数据包;
若接收到所述服务器返回的应答,则令上一次心跳间隔等于当前心跳间隔,然后令当前心跳间隔增加预设第二时间段;
判断当前心跳间隔是否大于等于预设最大心跳间隔;
若当前心跳间隔大于等于预设最大心跳间隔,则令当前心跳间隔等于预设最大心跳间隔,然后令上一次心跳间隔等于当前心跳间隔,然后进入稳定心跳时期;
若当前心跳间隔小于预设最大心跳间隔,则返回使用当前心跳间隔向服务器发送心跳数据包的步骤;
如果出现过连续预设次数的当前心跳间隔都达到预设最大心跳间隔,则将预设最大心跳间隔增加预设第二时间段。
2.根据权利要求1所述的方法,其特征在于,所述心跳探测时期的动作,还包括:
在所述使用当前心跳间隔向服务器发送心跳数据包之后,若没有接收到所述服务器返回的应答,则进入稳定心跳时期。
3.根据权利要求1所述的方法,其特征在于,所述稳定心跳时期的动作,包括:
使用所述心跳探测时期最后探测出的上一次心跳间隔向服务器发送心跳数据包;
在所述使用所述心跳探测时期最后探测出的上一次心跳间隔向服务器发送心跳数据包之后,若没有接收到所述服务器返回的应答、且连续没有接收到所述服务器返回的应答的次数小于预设第二阈值,则将连续没有接收到所述服务器返回的应答的次数加1,并使用短心跳向服务器发送心跳数据包;
在使用短心跳向服务器发送心跳数据包之后,若接收到所述服务器返回的应答,则返回所述使用所述心跳探测时期最后探测出的上一次心跳间隔向服务器发送心跳数据包的步骤。
4.根据权利要求3所述的方法,其特征在于,所述稳定心跳时期的动作,还包括:
在使用短心跳向服务器发送心跳数据包之后,若没有接收到所述服务器返回的应答,则返回所述将连续没有接收到所述服务器返回的应答的次数加1,并使用短心跳向服务器发送心跳数据包的步骤。
5.根据权利要求3所述的方法,其特征在于,所述稳定心跳时期的动作,还包括:
在所述使用所述心跳探测时期最后探测出的上一次心跳间隔向服务器发送心跳数据包之后,若没有接收到所述服务器返回的应答、且连续没有接收到所述服务器返回的应答的次数大于预设第二阈值,则返回所述短心跳时期的开始。
6.根据权利要求3所述的方法,其特征在于,所述固定心跳模式的动作,包括:
使用所述动态探测心跳模式最后探测出的上一次心跳间隔向服务器发送心跳数据包。
7.一种终端,其特征在于,包括:
第一发送模块,用于在终端中的即时通讯应用程序处于运行状态并且终端处于休眠/黑屏状态时,或者在终端中的即时通讯应用程序处于后台运行状态时,通过动态探测心跳模式向服务器发送心跳数据包;
第二发送模块,用于在终端中的即时通讯应用程序处于前台激活运行状态时,通过固定心跳模式向服务器发送心跳数据包;
所述动态探测心跳模式,包括:短心跳时期的动作、心跳探测时期的动作和稳定心跳时期的动作;
所述短心跳时期的动作,包括:
当切换到一个新的网络时,使用短心跳向服务器发送心跳数据包,所述短心跳的间隔为预设第一时间段;
若连续接收到所述服务器返回的应答的次数大于预设第一阈值,则进入所述心跳探测时期;
所述心跳探测时期的动作,包括:
在进入所述心跳探测时期时,令当前心跳间隔和上一次心跳间隔均等于预设最小心跳间隔;
使用当前心跳间隔向服务器发送心跳数据包;
若接收到所述服务器返回的应答,则令上一次心跳间隔等于当前心跳间隔,然后令当前心跳间隔增加预设第二时间段;
判断当前心跳间隔是否大于等于预设最大心跳间隔;
若当前心跳间隔大于等于预设最大心跳间隔,则令当前心跳间隔等于预设最大心跳间隔,然后令上一次心跳间隔等于当前心跳间隔,然后进入稳定心跳时期;
若当前心跳间隔小于预设最大心跳间隔,则返回使用当前心跳间隔向服务器发送心跳数据包的步骤;
如果出现过连续预设次数的当前心跳间隔都达到预设最大心跳间隔,则将预设最大心跳间隔增加预设第二时间段。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610785094.7A CN106375148B (zh) | 2016-08-30 | 2016-08-30 | 即时通讯中的动态网络心跳处理方法及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610785094.7A CN106375148B (zh) | 2016-08-30 | 2016-08-30 | 即时通讯中的动态网络心跳处理方法及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106375148A CN106375148A (zh) | 2017-02-01 |
CN106375148B true CN106375148B (zh) | 2019-05-21 |
Family
ID=57899521
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610785094.7A Active CN106375148B (zh) | 2016-08-30 | 2016-08-30 | 即时通讯中的动态网络心跳处理方法及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106375148B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106850355B (zh) * | 2017-02-24 | 2020-06-16 | 上海微喂网络科技有限公司 | 应用在实时对讲网络中的全时监听智能心跳方法 |
CN110493070A (zh) * | 2018-05-15 | 2019-11-22 | 深圳市尚云互联技术有限公司 | 断网通知方法及其应用*** |
CN110474975B (zh) * | 2019-08-08 | 2022-03-15 | 北京云中融信网络科技有限公司 | 应用程序的心跳处理方法、装置、电子设备及存储介质 |
CN112839106A (zh) * | 2021-02-25 | 2021-05-25 | 北京北信源软件股份有限公司 | 通信方法及装置、电子设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102223257A (zh) * | 2011-07-25 | 2011-10-19 | 莫雅静 | 一种心跳间隔调整方法、服务器、客户端及通信*** |
CN102821011A (zh) * | 2012-08-28 | 2012-12-12 | 北京星网锐捷网络技术有限公司 | 对端状态检测方法、装置及设备 |
CN103685241A (zh) * | 2013-11-26 | 2014-03-26 | 中国科学院计算技术研究所 | 一种维持tcp长连接的自适应心跳方法及其*** |
CN104144159A (zh) * | 2014-06-26 | 2014-11-12 | 腾讯科技(深圳)有限公司 | 智能心跳保活方法及智能心跳保活*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080165796A1 (en) * | 2007-01-05 | 2008-07-10 | International Business Machines Corporation | Method for a heartbeat algorithm for a dynamically changing network environment |
-
2016
- 2016-08-30 CN CN201610785094.7A patent/CN106375148B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102223257A (zh) * | 2011-07-25 | 2011-10-19 | 莫雅静 | 一种心跳间隔调整方法、服务器、客户端及通信*** |
CN102821011A (zh) * | 2012-08-28 | 2012-12-12 | 北京星网锐捷网络技术有限公司 | 对端状态检测方法、装置及设备 |
CN103685241A (zh) * | 2013-11-26 | 2014-03-26 | 中国科学院计算技术研究所 | 一种维持tcp长连接的自适应心跳方法及其*** |
CN104144159A (zh) * | 2014-06-26 | 2014-11-12 | 腾讯科技(深圳)有限公司 | 智能心跳保活方法及智能心跳保活*** |
Also Published As
Publication number | Publication date |
---|---|
CN106375148A (zh) | 2017-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106375148B (zh) | 即时通讯中的动态网络心跳处理方法及终端 | |
CN104991850B (zh) | 一种应用程序的心跳包控制方法和装置 | |
CN107517136B (zh) | 心跳保活的实现方法、装置及*** | |
JP5964496B2 (ja) | ピア・ツー・ピア無線接続のグループオーナー責任を復旧するシステムと方法 | |
EP2728471B1 (en) | Method and terminal for managing application | |
JP7204912B2 (ja) | インテリジェント機器を制御するための方法、デバイスおよび記憶媒体 | |
CN110474975B (zh) | 应用程序的心跳处理方法、装置、电子设备及存储介质 | |
CN108430116A (zh) | 断网重连方法、介质、装置和计算设备 | |
CN108712485A (zh) | 一种物联网设备的资源订阅方法和装置 | |
CN108449239A (zh) | 心跳包检测方法、装置、设备和存储介质 | |
CN109194547A (zh) | 报文传输方法、装置、本端设备及可读存储介质 | |
KR102159045B1 (ko) | 네트워크 정책 업데이트를 트리거하는 방법, 관리 기능 엔티티 및 코어 네트워크 기기 | |
CN105516292A (zh) | 一种智能变电站云平台的热备方法 | |
CN105897813A (zh) | 心跳消息发送方法、接收方法及装置 | |
CN106851799B (zh) | 一种长连接中心跳包的发送方法及装置 | |
CN105262911B (zh) | 语音通话中***电话的处理方法、***和装置 | |
CN109040295A (zh) | 异常断线的确定方法及装置、终端及存储介质 | |
CN109150659B (zh) | 一种处理器及bfd报文传输方法 | |
CA2840085A1 (en) | Systems and methods for use in communicating with utility devices | |
CN107104822B (zh) | 服务器备灾处理方法、装置、存储介质及电子设备 | |
CN104601376B (zh) | 心跳报文发送方法及装置 | |
CN105516658A (zh) | 一种监控设备控制方法及装置 | |
WO2020211684A1 (zh) | 消息传输方法及相关设备 | |
CN113346973A (zh) | 事件提示方法及装置、电子设备、计算机可读存储介质 | |
CN104063033B (zh) | 基于电子设备互连的状态切换方法及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |