一种心跳超时检测方法、服务器及电子设备技术

技术编号:30320553 阅读:29 留言:0更新日期:2021-10-09 23:36
本发明专利技术公开一种心跳超时检测方法、服务器及电子设备,在客户端与服务器通信连接成功之后,客户端向服务器发送第i个检测周期对应的心跳请求消息,并记录心跳请求消息的发送时间;客户端若在本端当前记录的第一超时时间内,接收到服务器反馈的同属第i个检测周期内的应答信息,记录所述应答信息的接收时间,并根据所述心跳请求消息的发送时间和所述应答信息的接收时间,更新所述第一超时时间;客户端若在所述第一超时时间内未接收到服务器反馈的同属第i个检测周期内的应答信息,则断开与服务器的通信连接。客户端能够根据网络状态自适应调整本端的第一超时时间,增强适应弱网、网络抖动和阻塞等状态的能力,提高心跳超时检测的自适应性和准确性。时检测的自适应性和准确性。时检测的自适应性和准确性。

【技术实现步骤摘要】
一种心跳超时检测方法、服务器及电子设备


[0001]本专利技术涉及通信
,尤其涉及一种心跳超时检测方法、服务器及电子设备。

技术介绍

[0002]在某些通信场景中,可基于通信协议,建立客户端与服务器的通信连接。以实现数据传输和信息交互,所述通信协议例如是TCP(Transmission Control Protocol,传输控制协议)、WebSocket协议等。
[0003]在通信连接成功后,可能会出现网络异常,例如网络抖动、阻塞和断网等,而客户端和服务器无法获知当前存在网络异常,这就导致两端虽然仍保持连接状态,但实际上已无法进行有效通信,不仅影响数据传输,还占用通信资源。对此,在现有通信中引入心跳机制,客户端与服务器之间周期性地互发心跳消息,例如客户端向服务器端发送心跳消息1,若网络良好,则服务器会向客户端快速回传心跳消息2;若客户端在阈值时间内始终未接收到服务器的心跳反馈,即心跳检测超时,则认为通信连接不可用,自动断开连接。但这种通过限定的阈值时间来检测心跳超时的方式,容易出现超时误判、通信连接误关闭、抗网络抖动/阻塞能力弱等问题。

技术实现思路

[0004]本专利技术提供一种心跳超时检测方法、服务器及电子设备,可以提高心跳超时检测的准确性,增强通信连接对网络不稳定性的适应能力。
[0005]第一方面实施例提供的心跳超时检测方法,应用于客户端,包括:
[0006]在客户端与服务器通信连接成功之后,客户端向服务器发送第i个检测周期对应的心跳请求消息,并记录所述心跳请求消息的发送时间;
[0007]客户端若在本端当前记录的第一超时时间内,接收到服务器反馈的同属第i个检测周期内的应答信息,记录所述应答信息的接收时间,并根据所述心跳请求消息的发送时间和所述应答信息的接收时间,更新所述第一超时时间;
[0008]客户端若在所述第一超时时间内未接收到服务器反馈的同属第i个检测周期内的应答信息,则断开与服务器的通信连接。
[0009]在第一方面第一种示例性的实现方式中,客户端按照如下方式更新所述第一超时时间:计算所述心跳请求消息的发送时间与所述应答信息的接收时间的时间差,得到客户端第i个检测周期对应的心跳往返时间;根据客户端第i个检测周期对应的心跳往返时间,自适应匹配新的第一超时时间。
[0010]在第一方面第二种示例性的实现方式中,客户端按照如下公式自适应匹配新的第一超时时间;
[0011]Timeout
Ai
=min(max(a1*RTT
Ai
,b1*cycle),Timeout
max1
)
[0012]式中,Timeout
Ai
为所述第一超时时间,cycle为相邻两次心跳请求消息的预设发送间隔,a1为客户端设置的第一系数,b1为客户端设置的第二系数,Timeout
max1
为客户端预设
的最大超时时间,RTT
Ai
为客户端第i个检测周期对应的心跳往返时间。
[0013]在第一方面第三种示例性的实现方式中,所述方法还包括:客户端在所述第一超时时间内接收到服务器反馈的同属第i个检测周期内的应答信息时,向服务器发送同属第i个检测周期内的心跳确认消息,所述心跳确认消息用于指示服务器记录所述心跳确认消息的接收时间,所述心跳确认消息的接收时间用于计算服务器端第i个检测周期对应的心跳往返时间。
[0014]在第一方面第四种示例性的实现方式中,所述方法还包括:
[0015]客户端在断开与服务器的第j次通信连接之后,将本端记录的i值清零,并向服务器发送重连请求,所述重连请求用于向服务器请求建立第j+1次通信连接;
[0016]在第j+1次通信连接建立成功后,客户端在接收到服务器首次反馈的应答信息之前,将预设的第一阈值时间作为所述第一超时时间。
[0017]第一方面主要针对通信连接中的客户端侧,在客户端与服务器连接成功之后,通过心跳机制检测连接的有效性,客户端周期性地向服务器发送心跳请求消息,若能在本侧记录的第一超时时间内,接收到服务器在响应心跳请求消息后反馈的同属一个检测周期内的应答信息,则客户端认为连接有效,等待下一周期的心跳检测,反之则存在心跳超时问题,客户端即可主动断开与服务器的通信连接。其中本申请的关键在于,不是采用固定的超时时间,第一超时时间可以根据实际网络状态进行自适应调整,为便于描述,示例性地,用Req
i
表示第i个检测周期对应的心跳请求消息,用Res
i
表示服务器响应Req
i
后反馈的应答信息,即Req
i
和Res
i
为同属第i个检测周期内的交互消息。
[0018]客户端通过心跳请求消息Req
i
的发送时间(记为T
Asi
)和应答信息Res
i
的接收时间(记为T
ARi
),即可确定客户端第i次心跳检测中消息往返所消耗的时间,即客户端第i个检测周期对应的心跳往返时间(记为RTT
Ai
),心跳往返时间RTT
Ai
的时间长短可用于评估当前通信网络的状态,然后自适应匹配第一超时时间,在网络良好时,可以相对减小第一超时时间,比如采用预设的第一阈值时间(客户端侧默认的心跳超时时间)作为第一超时时间;在网络不稳定时,比如网络出现抖动、阻塞、弱网等情况,可以动态调整第一超时时间,相对增大第一超时时间,为接收服务器的应答信息提供更长时限,使通信连接更易于保留,而不会因网络的暂时波动而断连,若在相对较大的第一超时时间下仍旧检测到心跳超时,则说明网络很差,则无需保留通信连接,直接断开连接。第一方面中客户端能够根据网络状态自适应动态调整本端的第一超时时间,增强适应弱网、网络抖动和阻塞等状态的能力,第一超时时间不会无限制的增加,在网络恶化的一定程度时可以决策超时并断连,提高心跳超时检测的自适应性和准确性。
[0019]第二方面实施例提供的心跳超时检测方法,应用于服务器端,包括:
[0020]在服务器与客户端通信连接成功之后,服务器接收客户端发送的第i个检测周期对应的心跳请求消息;
[0021]服务器向客户端反馈同属第i个检测周期内的应答信息,并记录所述应答信息的发送时间;
[0022]服务器若在本端当前记录的第二超时时间内,接收到客户端发送的同属第i个检测周期内的心跳确认消息,记录所述心跳确认消息的接收时间,并根据所述应答信息的发送时间和所述心跳确认消息的接收时间,更新所述第二超时时间;
[0023]服务器若在所述第二超时时间内未接收到客户端发送的同属第i个检测周期内的心跳确认消息,则断开与客户端的通信连接。
[0024]在第二方面第一种示例性的实现方式中,服务器按照如下方式确定更新所述第二超时时间:计算所述应答信息的发送时间与所述心跳确认消息的接收时间的时间差,得到服务器端第i个检测周期对应本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种心跳超时检测方法,其特征在于,包括:在客户端与服务器通信连接成功之后,客户端向服务器发送第i个检测周期对应的心跳请求消息,并记录所述心跳请求消息的发送时间;客户端若在本端当前记录的第一超时时间内,接收到服务器反馈的同属第i个检测周期内的应答信息,记录所述应答信息的接收时间,并根据所述心跳请求消息的发送时间和所述应答信息的接收时间,更新所述第一超时时间;客户端若在所述第一超时时间内未接收到服务器反馈的同属第i个检测周期内的应答信息,则断开与服务器的通信连接。2.根据权利要求1所述的方法,其特征在于,客户端按照如下方式更新所述第一超时时间:计算所述心跳请求消息的发送时间与所述应答信息的接收时间的时间差,得到客户端第i个检测周期对应的心跳往返时间;根据客户端第i个检测周期对应的心跳往返时间,自适应匹配新的第一超时时间。3.根据权利要求2所述的方法,其特征在于,客户端按照如下公式自适应匹配新的第一超时时间;Timeout
Ai
=min(max(a1*RTT
Ai
,b1*cycle),Timeout
max1
)式中,Timeout
Ai
为所述第一超时时间,cycle为相邻两次心跳请求消息的预设发送间隔,a1为客户端设置的第一系数,b1为客户端设置的第二系数,Timeout
max1
为客户端预设的最大超时时间,RTT
Ai
为客户端第i个检测周期对应的心跳往返时间。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:客户端在所述第一超时时间内接收到服务器反馈的同属第i个检测周期内的应答信息时,向服务器发送同属第i个检测周期内的心跳确认消息,所述心跳确认消息用于指示服务器记录所述心跳确认消息的接收时间,所述心跳确认消息的接收时间用于计算服务器端第i个检测周期对应的心跳往返时间。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:客户端在断开与服务器的第j次通信连接之后,将本端记录的i值清零,并向服务器发送重连请求,所述重连请求用于向服务器请求建立第j+1次通信连接;在第j+1次通信连接建立成功后,客户端在接收到服务器首次反馈的应答信息之前,将预设的第一阈值时间作为所述第一超时时间。6.一种心跳超时检测方法,其特征在于,包括:在服务器与客户端通信连接成功之后,服务器接收客户端发送的第i个检测周期对应的心跳请求消息;;服务器向客户端反馈同属第i个检测周期内的应答信息,并记录所述应答信息的发送时间;服务器若在本端当前记录的第二超时时间内,接收到客户端发送的同属第i个检测周期内的心跳确认消息,记录所述心跳确认消息的接收时间,并根据所述应答信息的发送时间和所述心跳确认消息的接收时间,更新所述第二超时时间;服务器若在所述第二超时时间内未接收到客户端发送的同属第i个检测周期内的心跳确认消息,则断开与客户端的通信连接。
7.根据权利要求6所述的方法,其特征在于,服务器按照如下方式确定更新所述第二超时时间:计算...

【专利技术属性】
技术研发人员:任竑烨段孝超崔振熠王云刚
申请(专利权)人:聚好看科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1