一种用于保持连接的心跳方法和系统
技术领域
本发明属于通信技术领域,尤其涉及一种用于保持连接的心跳方法和系统。
背景技术
呼叫中心,具有接入和呼出方式多样化的特点,支持电话、计算机、传真机、收集短信息、WAP、寻呼机、电子邮件等多种通信方式,能够将多种沟通方式格式互换,可实现文本到语音、语音到文本、EMALL到语音、EMALL到短消息、EMALL到传真、传真到EMALL、语音到EMALL等自由切换,终端为了保证与服务器之间联网通道的畅通,需要向服务器周期发送心跳包,服务器根据接收到的心跳包的情况来确定网关设备的工作状态,现有技术的心跳包的发送方式包括固定周期时间和实时动态调整周期时间这两种方法,但以上方法依然存在以下缺点:(1)需要在服务器端生成策略并下发,耗费服务器资源;(2)“心跳参数表征信息”均为通道网络环境的通道参数,如地理位置、网络类型和运营商,未考虑收集用户的用户环境;(3)分组的手段单一,仅通过各心跳参数表征信息的平均值和排列组合分组,分组不够清楚。
发明内容
为了解决上述技术问题,本发明提供了一种用于保持连接的心跳方法。
本发明具体技术方案如下:
一种用于保持连接的心跳方法,其特征在于,方法包括如下步骤:
S1:服务器侦听与终端建立的业务会话队列,当侦听到停止发送业务数据包的业务对话时,向建立该业务对话终端发送采集和上传命令;
S2:终端收到所述采集和上传命令后,间隔采集至少两个心跳参数表征信息并上传服务器,所述心跳参数表征信息包括电量消耗速度VE和/或流量消耗速度VS;
S3:服务器接收到终端上传的心跳参数表征信息后,通过智能算法得到策略,遍历策略库获得与该策略对应的心跳周期指令,下发给终端;当策略库中没有该策略时,该策略与心跳周期建立映射,存入策略库;
S4:终端收到心跳周期指令后,按照该心跳周期指令向服务器发送心跳包。
本发明还提供了一种用于保持连接的心跳系统,心跳系统包括命令下发模块、心跳参数表征信息采集模块、策略生成模块、心跳包发送模块和心跳包接收模块;
命令下发模块:用于侦听与终端建立的业务会话队列,当侦听到停止发送业务数据包的业务对话时,向建立该业务对话终端发送采集和上传命令;
心跳参数表征信息采集模块:终端收到所述采集和上传命令后,间隔采集至少两个心跳参数表征信息并上传服务器,所述心跳参数表征信息包括电量消耗速度VE和/或流量消耗速度VS;
策略生成模块:服务器接收到终端上传的心跳参数表征信息后,通过智能算法得到策略,遍历策略库获得与该策略对应的心跳周期指令,下发给终端;当策略库中没有该策略时,该策略与心跳周期建立映射,存入策略库;
心跳包发送模块:终端根据心跳周期向服务器端发送心跳包;
心跳包接收模块:服务器端根据接收心跳包的情况来确定网关设备的工作状态。
本发明提供的用于保持连接的心跳方法,通过侦听与终端建立的业务会话队列,当侦听到停止发送业务数据包的业务对话时,向建立该业务对话终端发送采集和上传命令,再通过接收到的心跳参数表征信息(电量消耗速度和流量消耗速度)生成策略和心跳周期,终端按照该心跳周期向服务器发送心跳包,能够更加灵活的根据终端的电量和流量信息调整终端发送心跳包的频率,从终端的角度调整,能够进一步地节省终端的电量和流量。
附图说明
图1.实施例1用于保持连接的结构示意图;
图2.实施例2电量消耗速度和流量消耗速度的示意图;
图3.实施例2用于保持连接的心跳的方法流程图;
图4.实施例3用于保持连接的心跳方法流程图;
图5.实施例4用于保持连接的心跳方法流程图;
图6.实施例5用于保持连接的心跳方法流程图;
图7.实施例6用于保持连接的心跳方法流程图;
图8.实施例7用于保持连接的心跳系统;
图9.实施例8用于保持连接的心跳系统;
图10.实施例9用于保持连接的心跳系统。
具体实施方式
下面结合附图和实施例对本发明作进一步的描述,下列实施例仅用于解释本发明的发明内容,不用于限定本发明的保护范围。
附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
如图1所示,提供了一种用于保持连接的心跳方法,该方法包括如下步骤:
S1:服务器侦听与终端建立的业务会话队列,当侦听到停止发送业务数据包的业务对话时,向建立该业务对话终端发送采集和上传命令;
S2:终端收到所述采集和上传命令后,间隔采集至少两个心跳参数表征信息并上传服务器,所述心跳参数表征信息包括电量消耗速度VE和/或流量消耗速度VS;
S3:服务器接收到终端上传的心跳参数表征信息后,通过智能算法得到策略,遍历策略库获得与该策略对应的心跳周期指令,下发给终端;当策略库中没有该策略时,该策略与心跳周期建立映射,存入策略库;
S4:终端收到心跳周期指令后,按照该心跳周期指令向服务器发送心跳包。
其中,S1步骤中,侦听的内容包括业务会话结束后收到第一个心跳包或业务会话结束前的最后一个业务包。下面示例说明如何侦听最后一个业务包。某终端与服务器通过TCP/IP协议连接并建立业务会话后,会连续发送业务数据包,并在某一时刻停止发送业务包,服务器侦听到该业务会话停止发送业务数据包后并记下当前第一时间戳,并继续侦听。当间隔预设时间后(比如15min)仍然没有发送业务数据包,服务器则确认第一时间戳所对应的为最后一个业务包。
S2步骤中:终端收到所述采集命令后,示例说明,比如当前时刻为8:20:30采集一个心跳参数表征信息,间隔5min后再次采集一个心跳参数表征信息并上传服务器;
如图2和图3所示,继续说明步骤S2的具体方法:(图2和图3表达的是采样周期与实际终端业务使用周期,证明本发明的合理性,该方法中的间隔采样的两个时间点可以为任意时间点,可能会出现一定的误差,但是该误差范围较小,可以接受,且后面的实施例会对其进行进一步的限定)。
S31:检测终端两个时间点t1(8:20:30)和t2(8:25:30)的剩余电量百分比Et1(84%)和Et2(79%),计算电量消耗速度VE=Et1-Et2/k=(84%-79%)/5min=1%/min;
其中,本发明采集电量方法不作为限定,APP应用端获得手机用户授权采集的各种方式均可;
S32:检测终端两个时间点t1(8:20:12)和t2(8:25:12)的剩余流量百分比Es1(46%)和Es2(44%),计算流量消耗速度Vs=Es1-Es2/k=(46%-44%)/5min=0.4%/min;
S33:根据电量消耗速度VE和流量消耗速度Vs计算策略值U,U=VE×r+Vs×(1-r),当r设定为0.5时,U=1%×0.5+0.4%×0.5=0.7%;将U与策略阈值U1、U2、U3、U4比较(策略库比较),若U<U1,则每间隔K1min发送一次心跳包,若U2≥U>U1,则每间隔K2min发送一次心跳包,若U3≥U>U2,则每间隔K3min发送一次心跳包,若U>U3,则每间隔K4min发送一次心跳包;其中,K1<K2<K3<K4;假设U1=0.5%,U2=5%,U3=20%,U4=60%,K1=5,K2=10,K3=20,K4=30,由于该终端0.5%<U=0.7%<5%,因此,每间隔10min向服务器发送一次心跳包。
其中,进一步的限定,心跳参数表征信息除了电量消耗速度和流量消耗速度之外还包括运营商和地理位置信息。
本发明通过检测终端电量消耗速度和流量消耗速度,从终端的角度出发,合理的规划终端发送心跳包的频率,更加灵活、智能化,进一步地节省终端的电量和流量
实施例2(流量不限定场景)
如图4所示,步骤1和步骤S2之间还包括以下步骤:
S5:判断终端所处的网络环境,若终端处于收费型网络环境下,则进行步骤S6,若终端处于非收费型网络环境下,则进行步骤S7;
比如将wifi环境视为非收费环境,将4G/3G环境视为收费环境;
S6:计算终端的流量可用值Sy,并将Sy与流量阈值S2进行比较,若Sy≥S2,则进行步骤S7,若Sy<S2,则每间隔Wmin发送一次心跳包;
S7:判断终端的电量可用值Ey,并将Ey与电量阈值E2进行比较,若Ey≥E2,则每间隔Pmin发送一次心跳包,若E1<Et<E2,则进行步骤S2,若Et≤E1,则每间隔Qmin发送一次心跳包,其中P<K1<K2<K3<K4<Q<W。
本发明通过限定以上方法,当终端流量充足时,则判断终端的电量,如果电量也很充足,则每间隔Pmin发送一次心跳包(即发心跳包的频率较高),当终端流量充足,电量不足时,则每间隔Qmin发送一次心跳包(即发送心跳包的频率较低,在非收费型网络条件下,避免过多的耗费终端的电量),当终端流量充足,电量剩余量居中时,则进行步骤S2,计算电量消耗速度和流量消耗速度,进而根据策略得到相对应的心跳包周期;当终端处于收费型网络条件下时,则计算终端的流量可用值,当终端剩余较多流量,则用步骤S7的方法计算终端所剩电量,根据电量决定发送心跳包的周期,当终端处于收费型网络条件下,而剩余流量较少时,则每间隔Wmin发送一次心跳包(即由于流量和电量的限制,发送心跳包的频率更低,以节省终端的电量和流量)。
实施例3(电量不限量场景)
如图5所示,步骤S6和步骤S7之间还包括以下步骤:
S8:判断终端是否处于充电状态,若处于充电状态,则每间隔Cmin发送一次心跳包,其中,C<P,若终端处于非充电状态,则进行步骤S7。
本发明通过限定步骤S8,此时已确定终端处于非收费型网络条件下,当终端处于充电状态,即流量充足,电量也充足,此时每间隔Cmin发送一次心跳包(由于电量和流量均充足,无需担心电量或流量消耗殆尽,因此该场景下间隔C最小,心跳包的发送频率最高)。
实施例4(充电提示场景)
如图6所示,步骤S6和步骤S7之间还包括以下步骤:
S9:判断终端是否处于充电状态,若终端处于充电状态,则每间隔Cmin发送一次心跳包,其中,C<P,若终端处于非充电状态,则向终端下发命令,命令内容为向服务器上传地理位置信息内容,并进行步骤S10;
S10:服务器接收到终端发送的地理位置内容,并判断该位置是否为可充电场所,若该地理位置为不可充电场所(如判断结果为某某商场),则进行步骤S7,若该地理位置是可充电场所(如判断结果为某写字楼或居民楼),则向终端发送提示信息,提示信息内容为充电提示,并且每间隔Omin发送一次心跳包,其中,K1>O>P。
本发明通过限定步骤S9和S10,当终端处于非充电状态时,检测终端的地理位置,判断该位置是否为可充电场所,如果是可充电场所,则向终端发送提示信息,并每间隔Omin发送一次心跳包(默认为用户可随时充电,因此O>P)。
实施例5
如图7所示,例如一个使用联通运营商手机的用户在北京使用社交APP,通过以下方法保活;
S11:向手机下发采集与上传策略,采集与上传策略为采集手机的最大心跳包周期,并向云服务器上传最大心跳包周期及对应的手机的地理位置和运营商(如北京、联通),云服务器接收并根据各手机上传的手机最大心跳包周期及手机的地理位置和运营商,统计较优心跳周期,并保存;
S12:服务器侦听与终端建立的业务会话队列,当侦听到停止发送业务数据包的业务对话时,向建立该业务对话终端发送采集和上传命令;
S13:终端收到所述采集和上传命令后,间隔采集至少两个心跳参数表征信息并上传服务器,所述心跳参数表征信息包括电量消耗速度VE和/或流量消耗速度VS;
S14:服务器接收到终端上传的心跳参数表征信息后,通过智能算法得到策略,遍历策略库获得与该策略对应的心跳周期指令,下发给终端;当策略库中没有该策略时,该策略与心跳周期建立映射,存入策略库;
S15:终端收到心跳周期指令后,按照该心跳周期指令向服务器发送心跳包。
本发明先通过地理位置和运营商得到较优心跳周期,再监测终端的电量和流量消耗速度,综合更多的指标调整新跳发送周期,进一步的节省用户的电量和流量。
实施例6
如图8所示,提供了一种用于保持连接的心跳系统,心跳系统包括命令下发模块1、心跳参数表征信息采集模块2、策略生成模块3、心跳包发送模块4和心跳包接收模块5;
命令下发模块1:用于侦听与终端建立的业务会话队列,当侦听到停止发送业务数据包的业务对话时,向建立该业务对话终端发送采集和上传命令;
心跳参数表征信息采集模块2:终端收到所述采集和上传命令后,间隔采集至少两个心跳参数表征信息并上传服务器,所述心跳参数表征信息包括电量消耗速度VE和/或流量消耗速度VS;
策略生成模块3:服务器接收到终端上传的心跳参数表征信息后,通过智能算法得到策略,遍历策略库获得与该策略对应的心跳周期指令,下发给终端;当策略库中没有该策略时,该策略与心跳周期建立映射,存入策略库;
心跳包发送模块4:终端根据心跳周期向服务器端发送心跳包;
心跳包接收模块5:服务器端根据接收心跳包的情况来确定网关设备的工作状态。
实施例7
如图9所示,策略生成模块3包括电量消耗速度计算模块31、流量消耗速度计算模块32、策略值计算模块33和匹配模块34;
电量消耗速度计算模块31:用于检测终端两个时间点t1和t2的剩余电量百分比Et1和Et2,并计算电量消耗速度VE=Et1-Et2/k;
流量消耗速度计算模块32:用于检测终端两个时间点t1和t2的剩余流量百分比Es1和Es2,计算流量消耗速度Vs=Es1-Es2/k;
策略值计算模块33:根据电量消耗速度VE和流量消耗速度Vs计算策略值U,U=VE×r+Vs×1-r;
匹配模块34:将U与策略阈值U1、U2、U3、U4比较,若U<U1,则每间隔K1min发送一次心跳包,若U2≥U>U1,则每间隔K2min发送一次心跳包,若U3≥U>U2,则每间隔K3min发送一次心跳包,若U>U3,则每间隔K4min发送一次心跳包,其中,K1<K2<K3<K4。
实施例8
如图10所示,心跳系统还包括较优心跳周期统计模块6、剩余电量对比模块7和剩余流量对比块8;
较优心跳周期统计模块6:向终端下发采集与上传策略,采集与上传策略为采集终端的最大心跳包周期,并向云服务器上传最大心跳包周期及对应的终端的地理位置和运营商如北京、联通,云服务器接收并根据各终端上传的终端最大心跳包周期及终端的地理位置和运营商,统计较优心跳周期,并保存;
剩余电量对比模块7:采集终端剩余电量E剩,判断E剩与剩余电量阈值E剩1的大小;
剩余流量对比块8:采集剩余流量值S剩,判断S剩与剩余流量阈值S剩1的大小。
由于本发明的方法描述是在计算机系统中实现的。该计算机系统例如可以设置在服务器或终端的处理器中。例如本文所述的方法可以实现为能以控制逻辑来执行的软件,其由服务器中的CPU来执行。本文所述的功能可以实现为存储在非暂时性有形计算机可读介质中的程序指令集合。当以这种方式实现时,该计算机程序包括一组指令,当该组指令由计算机运行时其促使计算机执行能实施上述功能的方法。可编程逻辑可以暂时或永久地安装在非暂时性有形计算机可读介质中,例如只读存储器芯片、计算机存储器、磁盘或其他存储介质。除了以软件来实现之外,本文所述的逻辑可以利用分利部件、集成电路、与可编程逻辑设备(诸如,现场可编程门阵列(FPGA)或微处理器)结合使用的可编程逻辑,或者包括它们任意组合的任何其他设备来体现。所有此类实施旨在落入本发明的范围之内。