一种实现心跳的方法和装置与流程

文档序号:11279345阅读:264来源:国知局
一种实现心跳的方法和装置与流程

【技术领域】

本发明涉及计算机应用技术领域,特别涉及一种实现心跳的方法和装置。



背景技术:

因网络资源有限,对于空闲的internet链路会定期被拆除,因此为了保持长连接,终端与服务端需要定期发送信息保证长连接不被拆除,此机制称为心跳。例如,现有的各种云服务都需要通过客户端和服务端之间的心跳维持一条tcp/ip长连接。但目前大多数的心跳都是依靠ap(applicationprocessor,应用处理器)来进行管理的,由客户端或操作系统定时唤醒ap发送和接收心跳。例如,一些终端待机电流在5~10毫安,ap被唤醒时,即便屏幕未点亮电流也可能升到200毫安左右。因此,心跳由ap维护就需要频繁地唤醒ap,通常ap维持一条长连接心跳会增加待机耗电。



技术实现要素:

有鉴于此,本发明提供了一种实现心跳的方法和装置,以便于降低长连接心跳所带来的功耗。

具体技术方案如下:

本发明提供了一种实现心跳的方法,该方法包括:

通讯处理器从应用处理器获取心跳所需的参数;

依据所述心跳所需的参数维持与服务端之间的心跳。

根据本发明一优选实施方式,所述心跳所需的参数包括:心跳包的源ip地址、源端口号、目的ip地址、目的端口号以及心跳包的发送间隔t。

根据本发明一优选实施方式,所述心跳所需的参数包括:传输控制参数。

根据本发明一优选实施方式,所述通讯处理器从应用处理器获取心跳所需的参数包括:

所述通讯处理器接收所述应用处理器休眠的消息;

从所述应用处理器获取传输控制参数。

根据本发明一优选实施方式,该方法还包括:

所述通讯处理器接收服务端返回的数据包;

判断所述数据包是否为心跳响应包,如果否,则将所述数据包转发给应用处理器。

根据本发明一优选实施方式,在判断出所述数据包不是心跳响应包后,该方法还包括:

所述通讯处理器将传输控制参数提供给所述应用处理器。

根据本发明一优选实施方式,在判断出所述数据包不是心跳响应包后,还包括:

唤醒所述应用处理器。

根据本发明一优选实施方式,该方法还包括:

接收到所述应用处理器被唤醒的消息后,将传输控制参数提供给所述应用处理器。

根据本发明一优选实施方式,所述通讯处理器在所述应用处理器休眠时开始维持与服务端之间的心跳,在所述应用处理器被唤醒时结束维持与服务端之间的心跳。

根据本发明一优选实施方式,该方法还包括:

从应用处理器接收到发送给服务端的数据包或响应后,将所述数据包或响应发送给服务端;

从服务端接收到发送给客户端的数据包或响应后,将所述数据包或响应发送给应用处理器。

本发明还提供了一种实现心跳的方法,该方法包括:

应用处理器将心跳所需的参数发送给通讯处理器,以便所述通讯处理器依 据所述心跳所需的参数维持与服务端之间的心跳。

根据本发明一优选实施方式,所述心跳所需的参数包括:心跳包的源ip地址、源端口号、目的ip地址、目的端口号以及心跳包的发送间隔t。

根据本发明一优选实施方式,所述心跳所需的参数包括:传输控制参数。

根据本发明一优选实施方式,所述应用处理器将心跳所需的参数发送给通讯处理器包括:

所述应用处理器将自身休眠的消息发送给所述通讯处理器;

应所述通讯处理器的请求将所述心跳所需的参数提供给所述通讯处理器。

根据本发明一优选实施方式,该方法还包括:

所述应用处理器被唤醒后,将自身被唤醒的消息发送给所述通讯处理器;

接收所述通讯处理器提供的传输控制参数。

根据本发明一优选实施方式,该方法还包括:

将发送给服务端的数据包或响应发送给所述通讯处理器;

接收所述通讯处理器从服务端转发来的数据包或响应。

本发明还提供了一种实现心跳的方法,该方法包括:

客户端将心跳所需的参数经由应用处理器的系统模块提供给通讯处理器,以便所述通讯处理器依据所述心跳所需的参数维持与服务端之间的心跳。

根据本发明一优选实施方式,所述心跳所需的参数包括:心跳包的源ip地址、源端口号、目的ip地址、目的端口号以及心跳包的发送间隔t。

根据本发明一优选实施方式,所述客户端在与服务端建立长连接后,执行将所述心跳所需的参数经由应用处理器的系统模块提供给通讯处理器。

根据本发明一优选实施方式,该方法还包括:

所述客户端记录所述应用处理器休眠时的时间;

在所述应用处理器被唤醒后,所述客户端确定当前时间距离所述应用处理器上一次休眠的时长间隔δt;

若所述δt大于或等于心跳包的发送间隔t,则将发送给服务端的心跳包发送给所述应用处理器的系统模块。

本发明还提供了一种实现心跳的装置,设置于通讯处理器,该装置包括:

参数处理单元,用于从应用处理器获取心跳所需的参数;

心跳维持单元,用于依据所述心跳所需的参数维持与服务端之间的心跳。

根据本发明一优选实施方式,所述心跳所需的参数包括:心跳包的源ip地址、源端口号、目的ip地址、目的端口号以及心跳包的发送间隔t。

根据本发明一优选实施方式,所述心跳所需的参数包括:传输控制参数。

根据本发明一优选实施方式,所述参数处理单元,具体用于接收所述应用处理器休眠的消息后,从所述应用处理器获取传输控制参数。

根据本发明一优选实施方式,该装置还包括:

第一数据处理单元,用于接收到服务端返回的数据包后,判断所述数据包是否为心跳响应包,如果否,则将所述数据包转发给应用处理器;如果是,则提供给所述心跳维持单元。

根据本发明一优选实施方式,所述参数处理单元,还用于在所述第一数据处理单元判断出所述数据包不是心跳响应包后,将传输控制参数提供给所述应用处理器。

根据本发明一优选实施方式,该装置还包括:

唤醒单元,用于在所述第一数据处理单元判断出所述数据包不是心跳响应包后,唤醒所述应用处理器。

根据本发明一优选实施方式,所述参数处理单元,还用于接收到所述应用处理器被唤醒的消息后,将传输控制参数提供给所述应用处理器。

根据本发明一优选实施方式,所述心跳维持单元,具体用于在所述应用处理器休眠时开始维持与服务端之间的心跳,在所述应用处理器被唤醒时结束维持与服务端之间的心跳。

根据本发明一优选实施方式,该装置还包括:

第二数据处理单元,用于从应用处理器接收到发送给服务端的数据包或响应后,将所述数据包或响应发送给服务端;从服务端接收到发送给客户端的数据包或响应后,将所述数据包或响应发送给应用处理器。

本发明还提供了一种实现心跳的装置,设置于应用处理器,该装置包括:

参数处理单元,用于将心跳所需的参数发送给通讯处理器,以便所述通讯处理器依据所述心跳所需的参数维持与服务端之间的心跳。

根据本发明一优选实施方式,所述心跳所需的参数包括:心跳包的源ip地址、源端口号、目的ip地址、目的端口号以及心跳包的发送间隔t。

根据本发明一优选实施方式,所述心跳所需的参数包括:传输控制参数。

根据本发明一优选实施方式,该装置还包括:

状态管理单元,用于将自身休眠的消息发送给所述通讯处理器;

所述参数处理单元,具体用于应所述通讯处理器的请求将所述心跳所需的参数提供给所述通讯处理器。

根据本发明一优选实施方式,该装置还包括:

状态管理单元,用于在所述应用处理器被唤醒后,将应用处理器被唤醒的消息发送给所述通讯处理器;

所述参数处理单元,还用于接收所述通讯处理器提供的传输控制参数。

根据本发明一优选实施方式,该装置还包括:

数据处理单元,用于接收所述通讯处理器从服务端转发来的数据包或响应;将发送给服务端的数据包或响应发送给所述通讯处理器。

本发明还提供了一种实现心跳的装置,设置于客户端,该装置包括:

参数处理单元,用于将心跳所需的参数经由应用处理器的系统模块提供给通讯处理器,以便所述通讯处理器依据所述心跳所需的参数维持与服务端之间的心跳。

根据本发明一优选实施方式,所述心跳所需的参数包括:心跳包的源ip地址、源端口号、目的ip地址、目的端口号以及心跳包的发送间隔t。

根据本发明一优选实施方式,所述参数处理单元,用于在所述客户端与服务端建立长连接后,执行将所述心跳所需的参数经由应用处理器的系统模块提供给通讯处理器。

根据本发明一优选实施方式,该装置还包括:

心跳管理单元,用于记录所述应用处理器休眠时的时间以及被唤醒时的时间;在所述应用处理器被唤醒后,确定当前时间距离所述应用处理器上一次休眠的时长间隔δt,若所述δt大于或等于心跳包的发送间隔t,则将发送给服务端的心跳包发送给所述应用处理器的系统模块。

由以上技术方案可以看出,本发明采用cp代替ap维持与服务端之间的心跳,由于cp本身会被频繁唤醒,并且cp被唤醒对功耗的影响比ap被唤醒对功耗的影响小,因此本发明提供的方式能够降低长连接心跳所带来的功耗。

【附图说明】

图1为本发明所基于的系统架构图;

图2为本发明实施例提供的主要方法流程图;

图3为本发明实施例提供的优选方法流程图;

图4为本发明实施例提供的另一种优选方法流程图;

图5为本发明实施例提供的设置于cp的装置结构图;

图6为本发明实施例提供的设置于ap的装置结构图;

图7为本发明实施例提供的设置于客户端的装置结构图。

【具体实施方式】

为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。

通讯处理器(cp)是终端设备中负责通讯功能的处理器,也称之为基带处理器(bp,basebandprocessor),在本发明实施例中将其统一称为cp。由于cp本身会频繁被唤醒,并且cp被唤醒对功耗的影响相比较ap被唤醒而言,有数量级的差距,因此在本发明中将心跳的维持移到cp。

为了方便对本发明的理解,首先对本发明所基于的系统架构进行简单描述。如图1中所示,该系统包括位于终端设备侧的ap和cp。其中客户端运 行于ap,与服务端之间建立长连接,在本发明实施例中可以主要由cp维护该长连接心跳。即cp从ap获取心跳所需的参数,由cp依据该心跳所需的参数维持与服务器之间的心跳。

图2为本发明实施例提供的主要方法流程图,该流程图中,客户端运行于ap,也就是说,客户端和ap的系统模块都是ap的模块。如图2中所示,该方法主要包括以下步骤:

当客户端与服务端之间建立长连接后,在201中,客户端将心跳所需的参数发送给ap的系统模块。本步骤与现有技术中的过程类似,在现有实现方式中,当客户端完成与服务端之间的长连接建立后,也会将心跳所需的参数发送给ap的系统模块,不同的是,在现有技术中,心跳由ap维持,而本发明中则继续执行以下步骤。

在202中,ap的系统模块将心跳所需的参数发送给cp。

在203中,cp依据心跳所需的参数维持与服务端之间的心跳。

当ap的系统模块将心跳所需的参数发送给cp后,就可以进入休眠状态,然后由cp维持与服务端之间的心跳。其中心跳所需的参数可以包括心跳包的源ip地址、源端口号、目的ip地址、目的端口号以及心跳包的发送间隔t。cp依据这些参数来发送心跳包,即依据发送间隔t周期性地发送心跳包,心跳包的源ip地址、源端口号、目的ip地址和目的端口号均依据参数中的内容。

下面通过具体的实施例对上述方法进行详细描述。图3为本发明实施例提供的优选方法流程图,同样,客户端运行于ap,客户端和ap的系统模块都属于ap。如图3中所示,该方法可以具体包括以下步骤:

在301中,客户端与服务端之间建立长连接。该过程具体包括:在301a中,客户端分别经由ap的系统模块和cp向服务端发送连接请求,在301b中,客户端分别经由cp和ap的系统模块接收服务端返回的连接响应。该部分长连接建立的过程与现有技术的方式相同,不再详述。

在302中,客户端将心跳所需的参数发送给ap的系统模块。

其中,心跳所需的参数可以包括但不限于:心跳包的源ip地址、源端口号、目的ip地址、目的端口号以及心跳包的发送间隔t。

在303中,ap的系统模块将心跳所需的参数发送给cp。

在现有技术中,ap的系统模块获得心跳所需的参数后,由ap的系统模块负责维持与服务端之间的心跳。而在本发明实施例中,ap的系统模块将心跳所需的参数发送给cp后即可进入休眠状态,由cp负责维持与服务端之间的心跳。

在304中,ap的系统模块进入休眠状态。

在305中,客户端记录当前的系统时间,即记录ap的系统模块进入休眠状态的时间。

在306中,ap的系统模块将自身休眠的消息通知给cp。

需要说明的是,上述步骤304~306的执行顺序仅是本实施例所列举的一种执行顺序,也可以采用其他任意的执行顺序或者同时执行。ap的系统模块将自身休眠的消息通知给cp是为了告知cp,由cp开始维持与服务端之间的心跳。

在307中,cp从ap的系统模块获取传输控制参数。也就是说,ap的系统模块应cp的请求向cp提供传输控制参数。

由于ap和cp共享一条连接,因此需要保证ap和cp在这条连接的状态同步,这一同步依靠传输控制参数控制。当ap和cp共享tcp连接时,传输控制参数可以是tcp同步参数,简单地说,在tcp连接上进行的数据包的发送是需要依据并遵守一定序列号的,ap可以将当前的序列号作为传输控制参数发送给cp,cp后续在向服务端发送心跳包时,可以依据该序列号进行发送,例如每次发送时都将前一序列号加1。

在308中,cp维持与服务端之间的心跳。具体地,可以在308a中由cp依据发送间隔t向服务端发送心跳包,在308b中接收服务端发送的心跳响应。

另外,cp在维持与服务端之间的心跳过程中,除了会接收到服务端返 回的心跳响应之外,还可能接收到服务端推送的其他数据包,对于其他数据包则需要交由ap处理。即cp从服务端接收到数据包后,可以判断该数据包是否为心跳响应,如果是,则可以丢弃。如果否,则可以按照以下步骤执行。

在309中,cp接收到服务端发送的数据包,该数据包并非心跳响应。

在310中,cp唤醒ap的系统模块。一旦ap的系统模块被唤醒后,cp停止维持与服务端的心跳。

在311中,cp向ap的系统模块发送传输控制参数,该传输控制参数用于后续ap的系统模块向服务端发送响应或数据包时使用。

在312中,cp将数据包发送给ap的系统模块。

在313中,ap的系统模块将数据包发送给客户端。

在314中,客户端向ap的系统模块发送针对该数据包的响应。

在315中,ap的系统模块依据传输控制参数向cp发送响应。

在316中,由于该响应是返回给服务端的,因此cp将该响应发送给服务端。

若客户端与服务端之间的数据交互结束,又需要通过心跳维护长连接,那么可以重新转至步骤304执行。

还存在一种情况,即在步骤308之后,cp维持与服务器之间的心跳过程中,ap的系统模块被唤醒(但并非被cp唤醒,例如被用户通过点击电源按钮唤醒,再例如因来电被唤醒,等等),那么可以如图4中所示,开始继续执行409,ap的系统模块被唤醒后,向cp发送ap被唤醒的消息。

在410中,cp将传输控制参数发送给ap的系统模块。cp接收到ap被唤醒的消息后,结束维护与服务端之间的心跳。在此,传输控制参数与之前的类似,也可以包括cp在tcp连接上发送数据包(包括心跳包)所采用的序列号,后续ap的系统模块在该tcp连接上发送数据包时,依据既定的序列号规则执行,例如每次将序列号加1。

在411中,客户端确定当前时间距离上一次ap开始休眠的时间之间的时间差,判断该时间差是否大于或等于心跳包的发送间隔t,如果否,则无 需重新补发心跳包;如果是,则需要先补发一个心跳包以维持长连接,即执行412。

在412中,客户端向ap的系统模块发送心跳包。

在413中,ap的系统模块依据传输控制参数发送心跳包给cp。

在414中,由于该心跳包是发送给服务端的,因此cp将该心跳包发送给服务端。

需要说明的是,由于cp本身就是负责通讯的处理器,因此cp接收到发送给服务端的数据包或响应时,会转发给服务端;接收到发送给客户端的数据包或响应时,会转发给ap的系统模块。

由以上方法实施例的描述可以看出,cp在接收到ap休眠的消息后,开始主动维持与服务端之间的心跳。cp在接收到ap被唤醒的消息或者cp主动唤醒ap的系统模块后,停止主动维持与服务端之间的心跳,而交还给ap的系统模块主动维持与服务端之间的心跳。

需要说明的是,虽然在上述实施例对应的流程图中有服务端,但本发明无需对服务端进行任何变更,也就是说,能够与现有服务端进行适配。

以上是对本发明所提供方法进行的详细描述,下面结合实施例对本发明提供的各装置进行详细描述。

图5为本发明实施例提供的设置于cp的装置结构图,该装置用于执行上述实施例中cp的功能,如图5所示,该装置可以包括:参数处理单元01和心跳维持单元02,还可以包括第一数据处理单元03、唤醒单元04和第二数据处理单元05。各组成单元的主要功能如下:

参数处理单元01负责从ap获取心跳所需的参数。

心跳维持单元02负责依据心跳所需的参数维持与服务端之间的心跳。

其中,上述心跳所需的参数可以包括但不限于:心跳包的源ip地址、源端口号、目的ip地址、目的端口号以及心跳包的发送间隔t。相应地,参数处理单元01获取ap从客户端获取并转发的这些心跳所需的参数。

由于ap和cp共享一条连接,因此需要保证ap和cp的连接状态同步, 因此上述心跳所需的参数还可以包括传输控制参数。例如,当ap和cp共享的是tcp连接时,该传输控制参数可以是tcp同步参数,例如包括该tcp连接上数据包的序列号。ap可以将当前的序列号作为传输控制参数发送给cp,cp后续在向服务端发送心跳包时,可以依据该序列号进行发送,例如每次发送时都将前一序列号加1。相应地,参数处理单元01接收ap休眠的消息后,从ap获取传输控制参数。

由于服务端返回的数据包可能是心跳响应包,也可能是服务端主动推送的其他数据包,因此第一数据处理单元03接收到服务端返回的数据包后,判断数据包是否为心跳响应包,如果否,则将数据包转发给ap;如果是,则提供给心跳维持单元02。

另外,在第一数据处理单元03判断出数据包不是心跳响应包后,参数处理单元01可以将传输控制参数提供给ap,以及由唤醒单元04唤醒ap,从而将心跳的维持交还给ap。

还存在一种情况,即ap被唤醒后会主动向cp发送被唤醒的消息,参数处理单元01接收到ap被唤醒的消息后,将传输控制参数提供给ap,从而将心跳的维持交还给ap。

也就是说,心跳维持单元02在ap休眠时开始维持与服务端之间的心跳,在ap被唤醒时结束维持与服务端之间的心跳。

需要说明的是,由于cp本身就是负责通讯的处理器,因此第二数据处理单元05负责从ap接收到发送给服务端的数据包或响应后,将数据包或响应发送给服务端;从服务端接收到发送给客户端的数据包或响应后,将数据包或响应发送给ap。

图6为本发明实施例提供的设置于ap的装置结构图,用于完成上述方法实施例中ap中的系统模块的功能,如图6中所示,该装置可以包括参数处理单元11,还可以包括状态管理单元12和数据处理单元13。各组成单元的主要功能如下:

参数处理单元11负责将心跳所需的参数发送给cp,以便cp依据心跳所需 的参数维持与服务端之间的心跳。

上述心跳所需的参数可以包括但不限于:心跳包的源ip地址、源端口号、目的ip地址、目的端口号以及心跳包的发送间隔t。相应地,参数处理单元11从客户端接收这些心跳所需的参数并发送给cp。

另外,心跳所需的参数还可以包括:传输控制参数。相应地,状态管理单元12将自身休眠的消息发送给cp后,由参数处理单元11应cp的请求将传输控制参数提供给cp,由cp开始负责维持与服务端的心跳。

在ap被唤醒后,状态管理单元12将ap被唤醒的消息发送给cp,然后参数处理单元11会接收到cp提供的传输控制参数,心跳的维持交还回ap。

数据处理单元13负责接收到发送给客户端的数据包或响应后,将该数据包或响应转发给客户端;接收到发送给服务端的数据包或响应后,将该数据包或响应转发给cp。

图7为本发明实施例提供的设置于客户端的装置结构图,该装置负责完成上述方法实施例中客户端的功能,如图7中所示,该装置可以包括参数处理单元21,还可以包括心跳管理单元22。各组成单元的主要功能如下:

参数处理单元21负责将心跳所需的参数经由ap的系统模块提供给cp,以便cp依据心跳所需的参数维持与服务端之间的心跳。

其中,心跳所需的参数可以包括但不限于:心跳包的源ip地址、源端口号、目的ip地址、目的端口号以及心跳包的发送间隔t。具体地,参数处理单元21可以在客户端与服务端建立长连接后,执行将心跳所需的参数经由ap的系统模块提供给cp。

心跳管理单元22负责记录ap休眠时的时间以及被唤醒时的时间;在ap被唤醒后,客户端确定当前时间距离ap上一次休眠的时长间隔δt,若δt大于或等于心跳包的发送间隔t,则需要补发心跳包以维持长连接,即将发送给服务端的心跳包发送给ap;否则无需重新补发心跳包。

下面举一个应用场景:

cmns(cloudappmessagenotifyservice,云应用消息通知服务)是云 操作系统级的消息通知服务,是一套供系统应用及其他应用使用的,基于开放的、通用的、轻量级的网络连接协议,用于服务端主动发消息通知给指定设备上的指定应用的系统。

cmns服务端和cmns客户端之间通过心跳维持一条tcp长连接。由于运营商网络资源是有限的,对于空闲连接会定期清除,因此维护长连接需要心跳机制。在该应用场景下,就可以采用上述方法,由cmns客户端所在终端的cp维持与cmns服务端之间的心跳。具体流程参见上述实施例,在此不再赘述。

另外,本发明提供的方法和装置适用于任意类型的终端设备,可以包括但不限于智能移动终端、智能家电设备、可穿戴式设备、智能医疗设备、pc(个人计算机)等。其中智能移动设备可以包括诸如手机、平板电脑、笔记本电脑、pda(个人数字助理)等。智能家电设备可以包括诸如智能电视、智能空调、智能热水器、智能冰箱、智能空气净化器等等。可穿戴式设备可以包括诸如智能手表、智能眼镜、智能手环等等。智能医疗设备可以包括诸如智能体温计、智能血压仪、智能血糖仪等等。

在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

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