本发明专利技术提供了一种心跳保活方法、电子设备、系统及介质,所述方法包括:建立发送队列;当检测到有目标数据包生成时,将所述目标数据包存储至所述发送队列;当检测到长连接可用时,发送所述发送队列中的数据包。本发明专利技术能够保证在高压长连接场景下,心跳包不会被其他数据包挤掉,进而避免导致对长连接的断连产生误判,且通过对心跳包的等待,也能够有效避免在心跳包返回速度慢时对长连接的断连产生误判。
Methods, electronic equipment, systems and media for heartbeat protection
【技术实现步骤摘要】
心跳保活方法、电子设备、系统及介质
本专利技术涉及互联网
,尤其涉及心跳保活方法、电子设备、系统及介质。
技术介绍
TCP(TransmissionControlProtocol,传输控制协议)长连接系统会在传输过程中遇到一些异常情况,如:TCP长连接所在的进程被杀死、网络NAT(NetworkAddressTranslation,网络地址转换)超时、网络状态发生变化(如移动网络切换、wifi切换等)、DHCP(DynamicHostConfigurationProtocol,动态主机配置协议)租期过期等。上述异常将导致TCP长连接的中断,而在数据传输的过程中,TCP长连接的中断将导致数据传输异常,因此,通常要采用检测心跳包的方式确定TCP长连接是否异常。但在高压TCP长连接的场景下,服务端需要对客户端发来的包进行丢包处理,如果丢掉了心跳包,便会对长连接的断连产生误判,影响长连接的可用性。
技术实现思路
本专利技术的主要目的在于提供心跳保活方法、电子设备、系统及介质,能够保证在高压长连接场景下,心跳包不会被其他数据包挤掉,进而避免导致对长连接的断连产生误判,且通过对心跳包的等待,也能够有效避免在心跳包返回速度慢时对长连接的断连产生误判。为实现上述目的,本专利技术提供一种心跳保活方法,所述方法包括:建立发送队列;当检测到有目标数据包生成时,将所述目标数据包存储至所述发送队列;当检测到长连接可用时,发送所述发送队列中的数据包。优选地,所述方法还包括:当检测到所述发送队列没有空闲位置时,确定所述目标数据包的类型;当所述目标数据包为心跳包时,从所述发送队列中除心跳包之外的其他包中获取任意数据包,删除获取的数据包,并将所述目标数据包存储至所述发送队列;或者当所述目标数据包为除心跳包之外的其他包时,丢弃所述目标数据包。优选地,在丢弃所述目标数据包后,所述方法还包括:当接收到与所述目标数据包对应的请求指令时,重新生成所述目标数据包。优选地,所述方法还包括:利用配置系统函数检测所述长连接是否可用。优选地,在确定所述长连接中断后,所述方法还包括:关闭所述长连接;建立新的长连接。优选地,所述方法还包括:当接收到返回的心跳包时,确定所述长连接处于连接状态;利用所述长连接进行数据传输。优选地,所述方法还包括:当发送的数据包中心跳包的数量达到配置数量时,监测预设时间内是否接收到返回的心跳包;当没有接收到返回的心跳包时,确定所述长连接中断。为实现上述目的,本专利技术进一步提供一种电子设备,所述电子设备包括:存储器,存储至少一个指令;及处理器,执行所述存储器中存储的指令以实现所述心跳保活方法。优选地,所述电子设备为组成内容分发网络或者区块链网络的节点。为实现上述目的,本专利技术进一步提供一种心跳保活系统,所述系统包括:建立单元,用于建立发送队列;存储单元,用于当检测到有目标数据包生成时,将所述目标数据包存储至所述发送队列;发送单元,用于当检测到长连接可用时,发送所述发送队列中的数据包。优选地,所述确定单元,还用于当检测到所述发送队列没有空闲位置时,确定所述目标数据包的类型;所述系统还包括:删除单元,用于当所述目标数据包为心跳包时,从所述发送队列中除心跳包之外的其他包中获取任意数据包,删除获取的数据包;所述存储单元,还用于将所述目标数据包存储至所述发送队列;或者丢弃单元,用于当所述目标数据包为除心跳包之外的其他包时,丢弃所述目标数据包。优选地,所述系统还包括:生成单元,用于在丢弃所述目标数据包后,当接收到与所述目标数据包对应的请求指令时,重新生成所述目标数据包。优选地,所述系统还包括:检测单元,用于利用配置系统函数检测所述长连接是否可用。优选地,所述系统还包括:关闭单元,用于在确定所述长连接中断后,关闭所述长连接;所述建立单元,还用于建立新的长连接。优选地,所述确定单元,还用于当接收到返回的心跳包时,确定所述长连接处于连接状态;所述系统还包括:传输单元,用于利用所述长连接进行数据传输。优选地,所述系统还包括:监测单元,用于当发送的数据包中心跳包的数量达到配置数量时,监测预设时间内是否接收到返回的心跳包;确定单元,用于当没有接收到返回的心跳包时,确定所述长连接中断。综上所述,本专利技术能够建立发送队列,并且当检测到有目标数据包生成时,将所述目标数据包存储至所述发送队列,保证了在高压长连接场景下,心跳包不会被其他数据包挤掉,进而避免导致对长连接的断连产生误判,进一步地,当检测到长连接可用时,发送所述发送队列中的数据包,进而能够通过对心跳包的等待,有效避免了在心跳包返回速度慢时对长连接的断连产生误判。附图说明图1为本专利技术一实施例的流程示意图;图2为本专利技术一实施例揭露的电子设备的内部结构示意图;图3为本专利技术心跳保活系统的功能模块示意图。主要元件符号说明具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本专利技术要求的保护范围之内。本专利技术提供一种心跳保活方法。参照图1,图1为本专利技术一实施例的流程示意图。根据不同的需求,该流程示意图中步骤的顺序可以改变,某些步骤可以省略。所述心跳保活方法应用于一个或者多个电子设备中,所述电子设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,本文档来自技高网...
【技术保护点】
1.一种心跳保活方法,其特征在于,所述方法包括:/n建立发送队列;/n当检测到有目标数据包生成时,将所述目标数据包存储至所述发送队列;/n当检测到长连接可用时,发送所述发送队列中的数据包。/n
【技术特征摘要】
1.一种心跳保活方法,其特征在于,所述方法包括:
建立发送队列;
当检测到有目标数据包生成时,将所述目标数据包存储至所述发送队列;
当检测到长连接可用时,发送所述发送队列中的数据包。
2.如权利要求1所述的心跳保活方法,其特征在于,所述方法还包括:
当检测到所述发送队列没有空闲位置时,确定所述目标数据包的类型;
当所述目标数据包为心跳包时,从所述发送队列中除心跳包之外的其他包中获取任意数据包,删除获取的数据包,并将所述目标数据包存储至所述发送队列;或者
当所述目标数据包为除心跳包之外的其他包时,丢弃所述目标数据包。
3.如权利要求2所述的心跳保活方法,其特征在于,在丢弃所述目标数据包后,所述方法还包括:
当接收到与所述目标数据包对应的请求指令时,重新生成所述目标数据包。
4.如权利要求1所述的心跳保活方法,其特征在于,所述方法还包括:
利用配置系统函数检测所述长连接是否可用。
5.如权利要求1所述的心跳保活方法,其特征在于,在确定所述长连接中断后,所述方法还包括:
关闭所述长连接;
建立新的长连接。
【专利技术属性】
技术研发人员:刘杰,
申请(专利权)人:深圳市网心科技有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。