一种客户端心跳监测方法和系统与流程

文档序号:11205976阅读:758来源:国知局
一种客户端心跳监测方法和系统与流程

本发明涉及计算机应用技术领域,具体涉及一种客户端心跳监测方法和系统。



背景技术:

大型的app中往往有很多模块,每个模块在服务器端都具有独立的业务后端。每个业务后端都需要与前端保持通信,掌握客户端上下线的情况。根据客户端是否在线等情况做不同的操作(例如清空session等)。

现有技术中,客户端给后端发心跳的方法为:每个前端业务都给客户端发心跳。由于每个前端心跳时机不统一,会不断拉起app,导致app耗电量增大。

另外,一个心跳包至少需要占用一个tcp包,如果每个tcp包只是运载一个前端业务的心跳,则会造成网络效率较低。



技术实现要素:

有鉴于此,本发明实施例提供一种客户端心跳监测方法和系统,以降低app因发送各个业务的心跳请求所产生的耗电量,提高网络效率。

一种客户端心跳监测方法,方法包括:

获取应用系统接入的各个业务的心跳请求,所述心跳请求包括心跳请求所对应的业务标识和心跳时间;

将获取到的多个心跳请求集成到一个心跳请求集合中;

将所述心跳请求集合发送至服务器端;

服务器端在获取到所述心跳请求集合后对所述心跳请求集合进行解析,将所述心跳请求集合还原成多个心跳请求;

依据还原后的各个心跳请求所对应的业务标识,将所述还原得到的心跳请求发送至对应的业务后端。

优选的,上述方客户端心跳监测方法中,所述获取所述应用系统接入的各个业务的心跳请求之前,还包括:

检测当前网络的网络状态,依据所述网络状态确定所述心跳请求集合中的心跳请求的第一数量值;

所述获取所述应用系统接入的各个业务的心跳请求,包括:

依据预设规则在待发送的心跳请求中提取数量为第一数量值个心跳请求。

优选的,上述方客户端心跳监测方法中,所述检测当前网络的网络状态,依据所述网络状态确定所述心跳请求集合中的心跳请求的第一数量值,具体为:

判断当前网络的网络类型,依据第一预设映射表判断与当前网络的网络类型相对应的心跳请求集合所包含的心跳请求的数量值;

或判断当前网络的平均上传速度,依据第二预设映射表判断与所述当前网络的平均上传速度相对应的心跳请求集合所包含的心跳请求的数量值。

优选的,上述方客户端心跳监测方法中,当所述网络类型为第一预设类型时或所述当前网络的平均上传速度大于设定值时,所述心跳请求集合所包含的心跳请求的数量值为所述待发送的心跳请求的总数值;

所述将获取到的多个送心跳请求集成到一个心跳请求集合中,包括:

将预设时间段内获取到的所有的心跳请求集成到一个心跳请求集合中。

优选的,上述方客户端心跳监测方法中,所述第一数量值不大于所述应用系统接入的多个业务的数量值,所述预设时间段为同一业务生成的两个心跳请求之间的时间间隔。

一种客户端心跳监测系统,包括心跳采集子系统和心跳分发子系统;

所述心跳采集子系统应用于接入有多个业务的应用系统中,包括:

业务心跳采集模块,用于获取所述应用系统接入的各个业务的心跳请求,所述心跳请求包括心跳请求所对应的业务标识和心跳时间;

心跳数据组合模块,用于将获取到的多个送心跳请求集成到一个心跳请求集合中;

心跳发送模块,用于将所述心跳请求集合发送至服务器端;

所述心跳分发子系统应用于服务器端,包括:

心跳请求集合采集模块,用于获取心跳采集子系统发送的心跳请求集合;

解析模块,用于解析所述心跳请求集合,将所述心跳请求集合还原成多个心跳请求;

分发模块,用于依据还原后的各个心跳请求所对应的业务标识,将所述心跳请求发送至对应的业务后端。

优选的,上述客户端心跳监测系统中,所述心跳采集子系统,还包括:

心跳请求集合大小计算模块,用于检测当前网络的网络状态,依据所述网络状态确定心跳请求集合中的心跳请求的第一数量值;

所述业务心跳采集模块具体被配置为:依据预设规则由待发送的心跳请求中提取第一数量值个心跳请求。

优选的,上述客户端心跳监测系统中,所述心跳请求集合大小计算模块具体被配置为:+

判断当前网络的网络类型,依据第一预设映射表判断与当前网络的网络类型相对应的心跳请求集合所包含的心跳请求的数量值;或,判断当前网络的平均上传速度,依据第二预设映射表判断与所述当前网络的平均上传速度相对应的心跳请求集合所包含的心跳请求的数量值。

优选的,上述客户端心跳监测系统中,所述心跳请求集合大小计算模块还用于:当所述网络类型为第一预设类型时或所述当前网络的平均上传速度大于设定值时,将所述待发送的心跳请求的总数值作为所述心跳请求集合所包含的心跳请求的数量值。

基于上述技术方案,本发明实施例提供的上述方案,通过本申请上述实施例公开的技术方案可见,本申请中所述应用系统预先对接入的各个业务生成的心跳请求进行整合,将多个心跳请求整合为一个心跳请求集合,将该心跳请求集合作为一个tcp包通过网络发送至服务器端,服务器端获取到该心跳请求集合后,将其还原成多个心跳请求,依据各个心跳请求的业务标识,将其发送至对应的业务后端,完成的心跳请求的采集和发送,由整个过程来看,由于所述应用系统每个tcp包可发送多个心跳请求,因此,多个心跳请求只需拉起一次应用系统,降低了应用系统被拉起的次数,降低了应用系统的耗电量,同时由于一个tcp包包括多个心跳请求,因此降低了网络中传输的tcp包的数量,提高了网络传输心跳请求的效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例公开的一种客户端心跳监测方法的流程示意图;

图2为本申请实施例公开的一种客户端心跳监测系统的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在集成有多个业务前端的应用系统中,由于每个业务前端心跳时机不统一,在每个业务前端在向业务后端发送心跳数据时,会不断拉起该应用系统,导致应用系统的耗电量增加,并且,由于一个心跳至少占用一个tcp包,导致网络的负载量增加,使得网络效率较低。针对于此,本申请公开了,一种客户端心跳监测方法和系统。

本申请公开了一种客户端心跳监测方法,该方法应用于服务器以及接入有多个业务的应用系统中,参见图1,该方法包括:

步骤s101:获取心跳请求;

本本方法中,各个业务生成的心跳请求不会直接通过网络发送到服务器端,而是先通过应用系统获取其接入的各个业务的心跳请求,为每个心跳请求配置其对应业务的业务标识和该心跳请求生成的心跳时间;

步骤s102:合并心跳请求;

在本步骤中,为了降低应用系统的耗电量、降低因心跳请求生成的tcp包的数据,本申请将获取到的多个心跳请求集成到一个心跳请求集合中,需要说明的是心跳请求集合中的各个心跳请求之间是相互独立的,再将所述心跳请求集合发送至服务器端,服务器端在获取到该心跳请求集合后,可通过对该心跳请求集合进行解析可得到多个心跳请求。在本步骤中,在将多个心跳请求集成到一个心跳请求集合中时,需合并的心跳请求的数量可以依据自身需求自行设定,也可依据当前网络速度以及网络类型自行配置。例如,可以预先将获取到的各个待发送的心跳请求放入一个数据池中,所述数据池中有多个需要发送的心跳请求时,由于心跳请求集合中所包含的心跳请求的数量是一定的,因此可以依据数据池中的各个心跳请求的接收时间对各个待发送的心跳请求进行排序,将接收时间最早的n个(所述n为用户依据自身需求自行设定的第一数量值或系统依据当前网络速度以及网络类型自行配置的第一数量值值)待发送心跳请求集成到一个心跳请求集合中。当然也可以是,依据网络质量计算当前网络质量所许可的心跳请求集合的大小,计算各个心跳请求的大小,依据各个心跳请求的获取时间,按照由早到晚的顺序,将数据池中接收时间最早的待发送心跳请求加入至所述心跳请求集合中,直至当放入某一个所述心跳请求时,该心跳请求集合的大小最大于计算得到的心跳请求集合的大小时为止,将该心跳请求重新放入下一心跳请求集合中,并重复上述步骤。当然上述方案中也可以是不对心跳请求集合中心跳请求的数量进行限定,此时可以直接将预设时间段内数据池中获取到的所有的待发送的心跳请求集成到一个心跳请求集合中即可。当然,依据用户的不同需求,还可以选择其他配置方式,再此并不进行过多限定。

步骤s103:发送心跳请求集合;

当所述心跳请求集合配置完成后,将所述心跳请求集合作为一个tcp包通过网络发送至服务器端;

步骤s104:将所述心跳请求集合还原成多个心跳请求;

由于一个心跳请求集合内配置有多个心跳请求,因此服务器端在获取到所述心跳请求集合后,对所述心跳请求集合进行解析即可将所述心跳请求集合还原成多个心跳请求,当然,在这里所述解析可以指的是直接由所述心跳请求集合中调取心跳请求;

步骤s105:分发心跳请求;

在本步骤中,服务器端可以通过调取各个心跳请求所配置的业务标识,依据所述业务标识确定与还原得到的各个心跳请求一一对应的业务后端,通过内部网络,将各个心跳请求发送至与其对应的业务后端,业务后端可依据与所述心跳请求对应的心跳时间确定该心跳请求的生成时间,从而判断用户的在线状态。

一般使用客户端给后端发心跳的方法,每个前端业务都给客户端发心跳。由于每个前端心跳时机不统一,会不断拉起app,导致app耗电量增大。通过本申请上述实施例公开的技术方案可见,本申请中所述应用系统预先对接入的各个业务生成的心跳请求进行整合,将多个心跳请求整合到一个心跳请求集合中,将该心跳请求集合作为一个tcp包通过网络发送至服务器端,服务器端获取到该心跳请求集合后,将其还原成多个心跳请求,依据各个心跳请求的业务标识,将其发送至对应的业务后端,从而完成的心跳请求的采集和发送,由整个过程来看,由于所述应用系统向服务器发送的每个tcp包可发送多个心跳请求,因此,多个心跳请求只需拉起一次应用系统即可,降低了应用系统被拉起的次数,降低了应用系统的耗电量,同时由于一个tcp包包括多个心跳请求,因此降低了网络中传输的tcp包的数量,提高了网络效率。

为了防止所述心跳请求集合过大而导致当前网络无法正常传递tcp包,需要对所述心跳请求集合的大小进行限定,因此在获取所述应用系统接入的各个业务的心跳请求之前,还可以包括:

检测当前网络的网络状态,依据所述网络状态确定心跳请求集合中的心跳请求的第一数量值,通过所述心跳请求的第一数量值即可限定所述心跳请求集合的大小。在本申请中,可依预先建立一预设映射表,该预设映射表中存储有与各种网络状态一一对应的心跳请求集合中心跳请求的数量值,可依据查表方式获取与当前网路状态对应的心跳请求集合中心心跳请求的数量值,其中,所述网络状态可以指的是网络的类型或网速等,以网络类型为例,当应用系统为手机上装载的应用系统时,所述网络类型可以为2g网络、3g网络、4g网络以及wifi等;

此时,所述获取所述应用系统接入的各个业务的心跳请求,包括:

依据预设规则由待发送的心跳请求中提取第一数量值个心跳请求,将该第一数量值个心跳请求集成到一个心跳请求集合中,其中这第一数量值个心跳请求可以为多个待发送的心跳请求中接收时间最早的第一数量值个心跳请求。

具体的,本申请中,上述网络状态可以指的是网络的平均上传速度,或终端设备接入的网络类型,其中,平均上传速度越大,其允许的心跳请求集合中心跳请求的数量值越大。现有技术中,不同网络类型对应的平均上传速度也不同,因此,除了可以通过网速确定心跳请求集合中心跳请求的数量值之外,也可依据网络类型确定心跳请求集合中心跳请求的数量值,例如,4g网络对应的心跳请求集合中的心跳请求的数量值为15个,wifi网络对应的心跳请求集合中的心跳请求的数量值为10个,2g网络对应的心跳请求集合中的心跳请求的数量值为5个等;

具体的,上述方法中,所述检测当前网络的网络状态,检测当前网络的网络状态,依据所述网络状态确定所述心跳请求集合中的心跳请求的第一数量值,具体可以为:

判断当前网络的网络类型,依据第一预设映射表判断与当前网络的网络类型相对应的心跳请求集合所包含的心跳请求的数量值,将该数量值作为第一数量值,所述第一预设映射表中预存有各个网络类型与心跳请求集合中的心跳请求的数量值之间的映射关系;

或判断当前网络的平均上传速度,依据第二预设映射表判断与所述当前网络的平均上传速度相对应的心跳请求集合所包含的心跳请求的数量值,将该数量值作为第一数量值,所述第二预设映射表中预存有网络的平均上传速度与心跳请求集合中的心跳请求的数量值之间的映射关系。

在本申请上述实施例公开的技术方案中,当所述网络类型为第一预设类型(所述第一预设类型可以为平均上传速度大于设定值的网络类型,例如4g或wifi)时或所述当前网络的平均上传速度大于设定值时,由于网络质量较好,无需对所述心跳请求集合中的心跳请求的数量进行限定,因此,所述心跳请求集合所包含的心跳请求的数量值可以为一极大值,即所述心跳请求集合所包含的心跳请求可以为数据池中获取到的所需发送的所有的待发送心跳请求;

此时,为了防止心跳请求的上传时间过于滞后,可以预先设置一预设时间段,每隔预设时间段生成并发送一个心跳请求集合,所述将获取到的多个送心跳请求集成到一个心跳请求集合中,具体为:将预设时间段内获取到的所有的心跳请求集成到一个心跳请求集合中。

当然,在本申请上述实施例公开的技术方案中,如果各个业务生成的心跳请求的数量过少时,其长时间无法达到第一数量值,会导致心跳请求的上传时间过于滞后,针对于此,本申请还对心跳请求集合的上传时间进行限定,具体的,在生成所述心跳请求集合时,同时判断该心跳请求集合中的心跳请求的数量值是否达到所述第一数量值、判断该心跳请求集合的生成时间是否达到设定值,只要满足任意一个判断条件时,将所述心跳请求集合作为一个tcp包上传至服务器端。

在本申请上述实施例公开的技术方案中,在本申请上述实施例公开的技术方案中,如果所述第一数量值的值设定过大,会导致心跳请求集合中包括有某个业务在不同的时间段内生成的多个心跳请求,会导致心跳请求上过于滞后,因此,申请中所公开的第一数量值的值应不大于所述应用系统接入的业务的数量值,所述预设时间段为同一业务生成的两个心跳请求之间的时间间隔,上述“判断该心跳请求集合的生成时间是否达到设定值”中用到的设定值同样为同一业务生成的两个心跳请求之间的时间间隔。

与上述方法相对应,本申请还公开了一种客户端心跳监测系统,两者所公开的技术方案可相互借鉴,参见图2,该心跳监测系统由两部分构成:心跳采集子系统100和心跳分发子系统200;

其中,所述心跳采集子系统100应用于客户端接入有多个业务的应用系统中,其可以包括:

业务心跳采集模块110,其与步骤s101相对应,用于获取所述应用系统接入的各个业务的心跳请求,每个心跳请求包括由心跳请求所对应的业务标识和心跳时间;

心跳数据组合模块120,其与步骤s102相对应,用于将获取到的多个送心跳请求集成到一个心跳请求集合中;

心跳发送模块130,与步骤s130相对应,用于将所述心跳请求集合发送至服务器端;

所述心跳分发子系统200应用于服务器端,包括:

心跳请求集合采集模块210,用于获取心跳采集子系统发送的心跳请求集合;

解析模块220,与步骤s104相对应,用于解析所述心跳请求集合,将所述心跳请求集合还原成多个心跳请求;

分发模块230,与步骤s105相对应,用于依据还原后的各个心跳请求的业务标识,将所述心跳请求发送至对应的业务后端。

与上述方法相对应,所述心跳采集子系统,还包括:

心跳请求集合大小计算模块,用于检测当前网络的网络状态,依据所述网络状态确定心跳请求集合中的心跳请求的数量值n,所述n为不小于2的正整数;

所述业务心跳采集模块具体被配置为:依据预设规则由待发送的心跳请求中提取第一数量值个心跳请求。

与上述方法相对应,所述心跳请求集合大小计算模块具体被配置为:

判断当前网络的网络类型,依据第一预设映射表判断与当前网络的网络类型相对应的心跳请求集合所包含的心跳请求的数量值;或,判断当前网络的平均上传速度,依据第二预设映射表判断与所述当前网络的平均上传速度相对应的心跳请求集合所包含的心跳请求的数量值。

与上述方法相对应,所述心跳请求集合大小计算模块还用于:当所述网络类型为第一预设类型时或所述当前网络的平均上传速度大于设定值时,将所述待发送的心跳请求的总数值作为所述心跳请求集合所包含的心跳请求的数量值。

为了描述的方便,描述以上系统时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1