心跳保活的实现方法、装置及系统与流程

文档序号:13299099阅读:453来源:国知局
心跳保活的实现方法、装置及系统与流程

本发明涉及通信领域,具体而言,涉及一种心跳保活的实现方法、装置及系统。



背景技术:

可扩展通讯和表示协议(extensiblemessagingandpresenceprotocol,简称xmpp)是一种以可扩展标记语句(extensiblemarkuplanguage,简称xml)为基础的开放式即时通讯协议,可用于服务类实时通讯、表示和需求响应服务中的xml数据元流式传输,凭借其巨大的灵活性和开放性在即时通讯市场上占有了很大的份额。

但是,xmpp协议在移动领域一直被人所诟病,其中一个重要原因是流量消耗较大的问题,其中客户端与服务器之间的心跳保活占较大比重,xmpp协议规定有ping和pong消息作为一对心跳的来回消息,每个消息平均有100字节以上(这仅仅是应用层的消息,不包括下层诸如协议层的消息头部),如果按照每10秒一次心跳,那么一小时至少有近50k的流量,而且心跳是双向的,服务器也会以一定的间隔向客户端发起心跳保活,也对服务器处理消息带来压力。但是,心跳保活又是必要的,因为在移动环境下,用户上下线频繁,经常掉线,只有通过心跳保活的方式才能检测到对方是否在线。

针对上述相关技术中由于xmpp协议在移动通讯领域中客户端与服务器之间需要频繁的心跳保活,导致客户端流量和电量消耗较大的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种心跳保活的实现方法、装置及系统,以至少解决相关技术中由于基于xmpp协议,在移动通讯领域中客户端与服务器之间需要频繁的心跳保活,导致客户端流量和电量消耗较大的问题。

根据本发明的一个实施例,提供了一种心跳保活的实现方法,包括:检测客户端设备的运行模式是否变化;在检测到运行模式发生变化的情况下,在依据预设条件配置的心跳保活策略中确定与变化后的运行模式对应的心跳策略,并执行心跳策略,其中,心跳保活策略用于指示各个运行模式对应的心跳策略。

可选的,预设条件包括配置条件和/或用户在预设时间周期内的使用习惯:其中,配置条件包括以下至少之一:各个网络模式、各个网络模式对应的使用时间、使用频率;使用习惯包括以下至少之一:各个网络模式,使用各个网络模式的时间段,网络模式对应的使用周期。

进一步地,可选的,在检测客户端设备的运行模式是否变化之前,方法还包括:依据预设条件配置心跳保活策略;其中,在预设条件为配置条件的情况下,分别依据各个网络模式、各个网络模式对应的使用时间、使用频率配置各个运行模式下的心跳策略,得到心跳保活策略;其中,网络模式包括:运营商网络或公共可接入网络;运行模式为应用于配置条件下的运行状态。

可选的,依据预设条件配置心跳保活策略包括:在预设条件为使用习惯的情况下,分别依据使用习惯中的各个网络模式、使用各个网络模式的时间段和/或网络模式对应的使用周期生成对应数据处理模型;依据数据处理模型配置对应的心跳策略,得到心跳保活策略。

可选的,在检测客户端设备的运行模式是否变化之前,方法还包括:将心跳保活策略发送至服务器;接收服务器返回的响应信息,其中,响应信息至少包括以下:是否支持心跳保活策略的能力集,和/或鉴权参数。

可选的,在依据预设条件配置的心跳保活策略中确定与变化后的运行模式对应的心跳策略,并执行心跳策略包括:依据心跳保活策略匹配变化后的运行模式对应的心跳策略;在变化前的运行模式对应的心跳策略为第一心跳策略,变化后的运行模式对应的心跳策略为第二心跳策略的情况下,将第一心跳策略切换至第二心跳策略;执行第二心跳策略。

进一步地,可选的,执行第二心跳策略包括:依据第二心跳策略执行心跳保活操作;将第二心跳策略发送至服务器;接收服务器返回的心跳保活操作切换响应信息,其中,心跳保活操作切换响应信息用于指示服务器依据第二心跳策略执行了心跳保活策略的切换操作。

根据本发明的另一个实施例,提供了一种心跳保活的实现装置,包括:检测模块,用于检测客户端设备的运行模式是否变化;策略切换模块,用于在检测到运行模式发生变化的情况下,在依据预设条件配置的心跳保活策略中确定与变化后的运行模式对应的心跳策略,并执行心跳策略,其中,心跳保活策略用于指示各个运行模式对应的心跳策略。

可选的,在预设条件包括配置条件和/或用户在预设时间周期内的使用习惯:其中,配置条件包括以下至少之一:各个网络模式、各个网络模式对应的使用时间、使用频率;使用习惯包括以下至少之一:各个网络模式,使用各个网络模式的时间段,网络模式对应的使用周期。

进一步地,可选的,装置还包括:配置模块,用于在检测客户端设备的运行模式是否变化之前,依据预设条件配置心跳保活策略;其中,第一配置单元,用于在预设条件为配置条件的情况下,分别依据各个网络模式、各个网络模式对应的使用时间、使用频率配置各个运行模式下的心跳策略,得到心跳保活策略;其中,网络模式包括:运营商网络或公共可接入网络;运行模式为应用于配置条件下的运行状态。

可选的,配置模块包括:生成单元,用于在预设条件为使用习惯的情况下,分别依据使用习惯中的各个网络模式、使用各个网络模式的时间段和/或网络模式对应的使用周期生成对应数据处理模型;第二配置单元,用于依据数据处理模型配置对应的心跳策略,得到心跳保活策略。

可选的,装置还包括:发送模块,用于在检测客户端设备的运行模式是否变化之前,将心跳保活策略发送至服务器;接收模块,用于接收服务器返回的响应信息,其中,响应信息至少包括以下:是否支持心跳保活策略的能力集,和/或鉴权参数。

可选的,策略切换模块包括:匹配单元,用于依据心跳保活策略匹配变化后的运行模式对应的心跳策略;切换单元,用于在变化前的运行模式对应的心跳策略为第一心跳策略,变化后的运行模式对应的心跳策略为第二心跳策略的情况下,将第一心跳策略切换至第二心跳策略;执行单元,用于执行第二心跳策略。

进一步地,可选的,执行单元包括:执行子单元,用于依据第二心跳策略执行心跳保活操作;发送单元,用于将第二心跳策略发送至服务器;接收单元,用于接收服务器返回的心跳保活操作切换响应信息,其中,心跳保活操作切换响应信息用于指示服务器依据第二心跳策略执行了心跳保活策略的切换操作。

根据本发明的又一个实施例,提供了一种心跳保活的实现系统,包括:客户端和服务器,客户端与服务器通信连接,其中,客户端,用于依据预设条件配置心跳保活策略,并通过登陆流程将心跳保活策略发送至服务器,并接收服务器返回的支持心跳保活策略的响应信息,在检测到运行模式发生变化的情况下,在心跳保活策略中匹配变化后的运行模式对应的心跳策略,并执行心跳策略;服务器,用于接收客户端发送的心跳保活策略,并返回支持心跳保活策略的响应信息,在客户端的运行模式发送变化的情况下,接收客户端发送的心跳策略切换指示。

根据本发明的又一个实施例,还提供了一种存储介质。该存储介质设置为存储用于执行以下步骤的程序代码:检测客户端设备的运行模式是否变化;在检测到运行模式发生变化的情况下,在依据预设条件配置的心跳保活策略中确定与变化后的运行模式对应的心跳策略,并执行心跳策略,其中,心跳保活策略用于指示各个运行模式对应的心跳策略。

可选地,存储介质还设置为存储用于执行以下步骤的程序代码:在检测客户端设备的运行模式是否变化之前,方法还包括:依据预设条件配置心跳保活策略;其中,在预设条件为配置条件的情况下,分别依据各个网络模式、各个网络模式对应的使用时间、使用频率配置各个运行模式下的心跳策略,得到心跳保活策略;其中,网络模式包括:运营商网络或公共可接入网络;运行模式为应用于配置条件下的运行状态。

进一步地,可选地,依据预设条件配置心跳保活策略包括:在预设条件为使用习惯的情况下,分别依据使用习惯中的各个网络模式、使用各个网络模式的时间段和/或网络模式对应的使用周期生成对应数据处理模型;依据数据处理模型配置对应的心跳策略,得到心跳保活策略。

可选地,存储介质还设置为存储用于执行以下步骤的程序代码:在检测客户端设备的运行模式是否变化之前,方法还包括:将心跳保活策略发送至服务器;接收服务器返回的响应信息,其中,响应信息至少包括以下:是否支持心跳保活策略的能力集,和/或鉴权参数。

可选地,存储介质还设置为存储用于执行以下步骤的程序代码:在依据预设条件配置的心跳保活策略中确定与变化后的运行模式对应的心跳策略,并执行心跳策略包括:依据心跳保活策略匹配变化后的运行模式对应的心跳策略;在变化前的运行模式对应的心跳策略为第一心跳策略,变化后的运行模式对应的心跳策略为第二心跳策略的情况下,将第一心跳策略切换至第二心跳策略;执行第二心跳策略。

进一步地,可选地,存储介质还设置为存储用于执行以下步骤的程序代码:执行第二心跳策略包括:依据第二心跳策略执行心跳保活操作;将第二心跳策略发送至服务器;接收服务器返回的心跳保活操作切换响应信息,其中,心跳保活操作切换响应信息用于指示服务器依据第二心跳策略执行了心跳保活策略的切换操作。

通过本发明,由于检测客户端设备的运行模式是否变化;在检测到运行模式发生变化的情况下,在依据预设条件配置的心跳保活策略中确定与变化后的运行模式对应的心跳策略,并执行心跳策略,其中,心跳保活策略用于指示各个运行模式对应的心跳策略,因此,可以解决由于基于xmpp协议,在移动通讯领域中客户端与服务器之间需要频繁的心跳保活,导致客户端流量和电量消耗较大问题,达到降低客户端流量和电量消耗的效果。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是本发明实施例的一种心跳保活的实现方法的移动终端的硬件结构框图;

图2是根据本发明实施例的心跳保活的实现方法的流程图;

图3是根据本发明实施例的心跳保活的实现装置的结构框图;

图4是根据本发明实施例的心跳保活的实现系统的结构框图;

图5是根据本发明实施例的心跳保活的实现系统中xmpp客户端登录服务器的流程示意图;

图6是根据本发明实施例的心跳保活的实现系统中xmpp客户端与服务器之间,按照用户自定义的心跳场景,进行心跳保活的流程示意图。

具体实施方式

下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。

实施例1

本申请实施例1所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种心跳保活的实现方法的移动终端的硬件结构框图。如图1所示,移动终端10可以包括一个或多个(图中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,移动终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。

存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的心跳保活的实现方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(networkinterfacecontroller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

在本实施例中提供了一种运行于上述移动终端的方法,图2是根据本发明实施例的心跳保活的实现方法的流程图,如图2所示,该流程包括如下步骤:

步骤s202,检测客户端设备的运行模式是否变化;

步骤s204,在检测到运行模式发生变化的情况下,在依据预设条件配置的心跳保活策略中确定与变化后的运行模式对应的心跳策略,并执行心跳策略,其中,心跳保活策略用于指示各个运行模式对应的心跳策略。

由于相关技术中,在移动通讯领域,xmpp客户端与服务器之间频繁的心跳保活,导致流量和电量消耗较大,也给服务器造成一定压力,而心跳保活又是检测对方在线状态的必要手段。

结合步骤s202至步骤s204,在客户端侧,本申请实施例提供的心跳保活的实现方法针对上述问题,基于xmpp协议的可扩展特性,引入一套可定制、可扩展、自适应、可视化的分析配置模型来解决上述问题。

即,按照客户的需求和使用场景,制定出动态可变的心跳策略,在网络环境好(比如wi-fi环境)或用户需要频繁使用(比如白天工作时间)的情况下,心跳保活频率可以适当提高,保证通信服务的质量;而在流量较敏感(比如使用的是移动数据)或使用较少(比如夜间)的情况下,降低心跳保活的频率,带来的收益是客户端可以节约流量和电量,服务器也可以减轻压力。

本申请实施例提供的心跳保活的实现方法具备以下特点:

特点a,该心跳保活的实现方法提供一套分析配置模型,来适配具体用户的使用习惯,或者使用场景的切换等情况;

特点b,该心跳保活的实现方法可以根据不同的场景模式策略,不同的时间段,动态地调整心跳保活频率;

特点c,该心跳保活的实现方法能记录用户的各种行为习惯,以自适应的方式来调整心跳策略。

本申请实施例提供的心跳保活的实现方法中,由于检测客户端设备的运行模式是否变化;在检测到运行模式发生变化的情况下,在依据预设条件配置的心跳保活策略中确定与变化后的运行模式对应的心跳策略,并执行心跳策略,其中,心跳保活策略用于指示各个运行模式对应的心跳策略,因此,可以解决由于基于xmpp协议,在移动通讯领域中客户端与服务器之间需要频繁的心跳保活,导致客户端流量和电量消耗较大问题,达到降低客户端流量和电量消耗的效果。

可选的,预设条件包括配置条件和/或用户在预设时间周期内的使用习惯:其中,配置条件包括以下至少之一:各个网络模式、各个网络模式对应的使用时间、使用频率;使用习惯包括以下至少之一:各个网络模式,使用各个网络模式的时间段,网络模式对应的使用周期。

这里本申请实施例提供的心跳保活的实现方法中在配置心跳保活策略之前获取预设条件的途径可以包括接收用户手动输入的配置条件,或客户端通过在预设周期内获取用户的使用习惯,通过获取该使用习惯得到对应的数据处理模型。

进一步地,可选的,在步骤s202中检测客户端设备的运行模式是否变化之前,本申请实施例提供的心跳保活的实现方法还包括:

步骤s200,依据预设条件配置心跳保活策略;

其中,step1,在预设条件为配置条件的情况下,分别依据各个网络模式、各个网络模式对应的使用时间、使用频率配置各个运行模式下的心跳策略,得到心跳保活策略;

其中,网络模式包括:运营商网络或公共可接入网络;运行模式为应用于配置条件下的运行状态。

可选的,步骤s200中依据预设条件配置心跳保活策略包括:

step1’,在预设条件为使用习惯的情况下,分别依据使用习惯中的各个网络模式、使用各个网络模式的时间段和/或网络模式对应的使用周期生成对应数据处理模型;

step2’,依据数据处理模型配置对应的心跳策略,得到心跳保活策略。

可选的,在步骤s204中检测客户端设备的运行模式是否变化之前,本申请实施例提供的心跳保活的实现方法还包括:

step1,将心跳保活策略发送至服务器;

step2,接收服务器返回的响应信息,其中,响应信息至少包括以下:是否支持心跳保活策略的能力集,和/或鉴权参数。

可选的,步骤s206中在依据预设条件配置的心跳保活策略中确定与变化后的运行模式对应的心跳策略,并执行心跳策略包括:

step1,依据心跳保活策略匹配变化后的运行模式对应的心跳策略;

step2,在变化前的运行模式对应的心跳策略为第一心跳策略,变化后的运行模式对应的心跳策略为第二心跳策略的情况下,将第一心跳策略切换至第二心跳策略;

step3,执行第二心跳策略。

进一步地,可选的,步骤s206中step3中的执行第二心跳策略包括:

步骤a,依据第二心跳策略执行心跳保活操作;

步骤b,将第二心跳策略发送至服务器;

步骤c,接收服务器返回的心跳保活操作切换响应信息,其中,心跳保活操作切换响应信息用于指示服务器依据第二心跳策略执行了心跳保活策略的切换操作。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

实施例2

在本实施例中还提供了一种心跳保活的实现装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图3是根据本发明实施例的心跳保活的实现装置的结构框图,如图3所示,该装置包括:检测模块32和策略切换模块34,其中,

检测模块32,用于检测客户端设备的运行模式是否变化;

策略切换模块34,用于在检测到运行模式发生变化的情况下,在依据预设条件配置的心跳保活策略中确定与变化后的运行模式对应的心跳策略,并执行心跳策略,其中,心跳保活策略用于指示各个运行模式对应的心跳策略。

本申请实施例提供的心跳保活的实现装置中,由于依据预设条件配置心跳保活策略,其中,心跳保活策略用于指示各个运行模式对应的心跳策略;检测运行模式是否变化;在检测到运行模式发生变化的情况下,在心跳保活策略中匹配变化后的运行模式对应的心跳策略,并执行心跳策略,因此,可以解决由于基于xmpp协议,在移动通讯领域中客户端与服务器之间需要频繁的心跳保活,导致客户端流量和电量消耗较大问题,达到降低客户端流量和电量消耗的效果。

可选的,在预设条件包括配置条件和/或用户在预设时间周期内的使用习惯:其中,配置条件包括以下至少之一:各个网络模式、各个网络模式对应的使用时间、使用频率;使用习惯包括以下至少之一:各个网络模式,使用各个网络模式的时间段,网络模式对应的使用周期。

进一步地,可选的,本申请实施例提供的心跳保活的实现装置还包括:

配置模块,用于在检测客户端设备的运行模式是否变化之前,依据预设条件配置心跳保活策略;

其中,第一配置单元,用于在预设条件为配置条件的情况下,分别依据各个网络模式、各个网络模式对应的使用时间、使用频率配置各个运行模式下的心跳策略,得到心跳保活策略;其中,网络模式包括:运营商网络或公共可接入网络;运行模式为应用于配置条件下的运行状态。

可选的,配置模块包括:

生成单元,用于在预设条件为使用习惯的情况下,分别依据使用习惯中的各个网络模式、使用各个网络模式的时间段和/或网络模式对应的使用周期生成对应数据处理模型;

第二配置单元,用于依据数据处理模型配置对应的心跳策略,得到心跳保活策略。

可选的,本申请实施例提供的心跳保活的实现装置还包括:

发送模块,用于在检测客户端设备的运行模式是否变化之前,,将心跳保活策略发送至服务器;

接收模块,用于接收服务器返回的响应信息,其中,响应信息至少包括以下:是否支持心跳保活策略的能力集,和/或鉴权参数。

可选的,策略切换模块34包括:

匹配单元,用于依据心跳保活策略匹配变化后的运行模式对应的心跳策略;

切换单元,用于在变化前的运行模式对应的心跳策略为第一心跳策略,变化后的运行模式对应的心跳策略为第二心跳策略的情况下,将第一心跳策略切换至第二心跳策略;

执行单元,用于执行第二心跳策略。

进一步地,可选的,执行单元包括:

执行子单元,用于依据第二心跳策略执行心跳保活操作;

发送单元,用于将第二心跳策略发送至服务器;

接收单元,用于接收服务器返回的心跳保活操作切换响应信息,其中,心跳保活操作切换响应信息用于指示服务器依据第二心跳策略执行了心跳保活策略的切换操作。

需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。

实施例3

图4是根据本发明实施例的心跳保活的实现系统的结构框图,如图4所示,该动态心跳保活的系统包括:客户端42和服务器44,客户端42与服务器44通信连接,其中,

客户端42,用于依据预设条件配置心跳保活策略,并通过登陆流程将心跳保活策略发送至服务器44,并接收服务器44返回的支持心跳保活策略的响应信息,在检测到运行模式发生变化的情况下,在心跳保活策略中匹配变化后的运行模式对应的心跳策略,并执行心跳策略;

服务器44,用于接收客户端42发送的心跳保活策略,并返回支持心跳保活策略的响应信息,在客户端42的运行模式发送变化的情况下,接收客户端42发送的心跳策略切换指示。

基于上述系统,本申请实施例中的客户端42和服务器44,如图4所示,其中

客户端42包含:配置模块,感知模块,心跳管理模块,通讯模块。

(1)配置模块:该配置模块位于客户端,用户需要根据自己的需求来配置心跳策略。比如,可以按照网络环境来划分,wi-fi环境和移动数据环境;可以按照使用模式来划分,工作模式和休闲模式;可以按照时间段来划分,白天工作时间段和夜间时间段。

(2)感知模块:该配置模块位于客户端,由于用户在配置模块会配置心跳策略,比如wi-fi网络和移动数据网络不同的策略,白天工作时间段和夜间时间段又是不同的策略,而这种网络模式或者时间段的切换,需要依赖感知模块来通知。比如运行在android或者ios平台的客户端,底层操作系统会将网络模式或者时间段的变化通知上层应用,因此是可以实现的。

(3)心跳管理模块:该模块位于客户端,它的职责是根据用户的配置数据(须与配置模块交互),以及感知模块的通知,来实时动态的调整心跳策略。

(4)通讯模块:该模块位于客户端,负责与服务器之间发送和接收心跳消息。

综上具体改造如下:在登录流程中,客户端42在与服务器44能力协商的消息中,扩展xmpp现有协议,增加一个参数表示客户端42是否支持“动态心跳”功能,如果服务器44也支持“动态心跳”,需要记住该客户端42的新特性,保存在与该客户端42的会话上下文中。而对于客户端42,用户可以配置心跳的策略,可以按照网络场景来配置,比如wi-fi场景下,按照10秒间隔做心跳保活,而移动数据场景则按照30秒间隔;或者按照时间段来配置,比如在白天按照10秒间隔做心跳保活,而夜间则按照30秒间隔来保活。

此外,由于心跳是双向的,服务器44也会向客户端发起心跳,所以在客户端42配置的心跳策略,需要同步到服务器44。因此,客户端42与服务器44之间的心跳消息,也需要扩展,xmppping消息中增加一个参数指示当前在使用的心跳频率,在服务器44中增加“心跳管理模块”,该心跳管理模块负责以同样频率向客户端42发起心跳保活流程,且需要将当前心跳参数保存在与该客户端42关联的上下文中。

基于上述,本申请实施例提供的动态心跳保活的系统中的客户端42提供了一套可定制、可扩展、自适应、可视化的配置模型;通过扩展xmpp协议,实现了客户端42与服务器44的协同工作,同步的实时变化心跳策略。

其中,客户端42在实现动态心跳保活的过程中流程如下:

xmpp客户端首先登录服务器44,则发起登录流程,参见图5,包括完整的登录流程;

其中,流程中第二对stream消息是做能力协商用的,对此消息进行扩展,features参数组中增加一个属性参数,比如“动态心跳”(“dynamicheartbeat”)指示服务器44该客户端42是支持“动态心跳”功能的;

服务器44与客户端42在进行能力协商时,发现客户端42支持“动态心跳”功能,则将该特性保存在与该客户端42的上下文会话中;

在客户端42,用户可以自主配置心跳策略,场景模式,心跳间隔时间等参数;

客户端42按照当前心跳策略,向服务器44发起心跳保活请求,参见图6,比如当前网络环境为wi-fi,客户端42按照配置的10秒间隔向服务器44发起心跳保活;

当客户端42实时检测到网络环境切换为移动数据模式,客户端42则按照用户事先配置的30秒间隔向服务器44发起心跳保活;

其中,白天工作期间,客户端42频繁使用,按照用户配置的10秒间隔向服务器44发起心跳保活;

到了夜间,客户端42根据当前时间的变化,切换为配置的30秒间隔向服务器44发起心跳保活;

采用上述方法,服务器44需要支持“动态心跳”功能,在与客户端42进行能力协商时,扩展features消息,增加一个属性,比如“dynamicheartbeat”指示服务器44支持“动态心跳”功能,且需要能够保存每个会话当前的心跳频率。

客户端42需要支持“动态心跳”功能,用户可以自主配置心跳策略,场景模式,心跳间隔时间等参数。

综上,本申请实施例提供的动态心跳保活的系统中,在流量敏感或待机的场景下,用户可以通过配置,降低心跳保活频率,达到客户端减少流量、节约电量的目的。并且,在wi-fi环境或用户需要频繁使用的情况下,用户可以通过配置,提高心跳保活频率,带来更好的通信体验。

附图4为一种典型的应用场景,xmpp客户端首先登录到服务器,服务器为每个客户的建立相应的会话数据区,客户端发送的消息也是基于xmpp协议的,都要通过服务器转发路由到另一个客户端。

客户端为了支持动态心跳功能,需要增加或改造的模块有:配置模块,感知模块,心跳管理模块,通讯模块。用户首先在配置模块进行心跳策略的配置,感知模块需要在网络模式或者时间段发生切换的情况,实时通知心跳管理模块。其次心跳管理模块根据配置模块的数据,以及感知模块的通知,来决策当前适用的心跳策略,然后触发通讯模块,与服务器之间进行心跳保活。

服务器需要增加或改造的模块有:心跳管理模块,通讯模块。心跳管理模块在接收到客户端同步过来的心跳策略后,实时改变服务器的心跳。

这里图5为客户端42登录到服务器44的流程,其中stream类似查询服务器44功能,服务器44会把服务器44的特性返回给客户端42,例如sasl策略,iq-auth,zlib压缩,xmpp-bind等等。在第二对stream消息,服务器44可以扩展features字段,增加“动态心跳”参数,告知服务器44本客户端42支持“动态心跳”功能。

图6为xmpp客户端42与服务器44之间,按照用户自定义的心跳场景,进行心跳保活的过程,客户端42需要支持用户配置“动态心跳”的各种场景模式,以及对应的心跳间隔,客户端42根据当前的使用场景(网络状态,时间段等),实时地调整心跳间隔,与服务器44之间进行保活流程。

以附图5中为例子,用户配置心跳策略如下:白天工作时段,wi-fi网络下心跳频率为10秒,移动数据网络为30秒,夜间时段无论何种网络,均为60秒。首先,白天时段,客户端起初以10秒的心跳频率与服务器互发心跳消息,如果客户端切换到移动数据网络,感知模块第一时间会通知心跳管理模块,心跳管理模块获取用户配置数据为30秒,立即控制通讯模块改为30秒的心跳频率。而进入夜间时间段(用户配置的夜间时间段),感知模块也会通知心跳管理模块,心跳管理模块获取用户配置数据为60秒,立即控制通讯模块改为60秒的心跳频率。

实施例4

本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:

s1,检测客户端设备的运行模式是否变化;

s2,在检测到运行模式发生变化的情况下,在依据预设条件配置的心跳保活策略中确定与变化后的运行模式对应的心跳策略,并执行心跳策略,其中,心跳保活策略用于指示各个运行模式对应的心跳策略。

可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:

s1,在检测客户端设备的运行模式是否变化之前,方法还包括:依据预设条件配置心跳保活策略;其中,在预设条件为配置条件的情况下,分别依据各个网络模式、各个网络模式对应的使用时间、使用频率配置各个运行模式下的心跳策略,得到心跳保活策略;其中,网络模式包括:运营商网络或公共可接入网络;运行模式为应用于配置条件下的运行状态。

可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行依据预设条件配置心跳保活策略包括:在预设条件为使用习惯的情况下,分别依据使用习惯中的各个网络模式、使用各个网络模式的时间段和/或网络模式对应的使用周期生成对应数据处理模型;依据数据处理模型配置对应的心跳策略,得到心跳保活策略。

可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行在检测客户端设备的运行模式是否变化之前,方法还包括:将心跳保活策略发送至服务器;接收服务器返回的响应信息,其中,响应信息至少包括以下:是否支持心跳保活策略的能力集,和/或鉴权参数。

可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行在依据预设条件配置的心跳保活策略中确定与变化后的运行模式对应的心跳策略,并执行心跳策略包括:依据心跳保活策略匹配变化后的运行模式对应的心跳策略;在变化前的运行模式对应的心跳策略为第一心跳策略,变化后的运行模式对应的心跳策略为第二心跳策略的情况下,将第一心跳策略切换至第二心跳策略;执行第二心跳策略。

可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行执行第二心跳策略包括:依据第二心跳策略执行心跳保活操作;将第二心跳策略发送至服务器;接收服务器返回的心跳保活操作切换响应信息,其中,心跳保活操作切换响应信息用于指示服务器依据第二心跳策略执行了心跳保活策略的切换操作。

可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。

显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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