网络连接检测方法和装置与流程

文档序号:11138357阅读:228来源:国知局
网络连接检测方法和装置与制造工艺

本发明涉及计算机网络技术领域,特别是涉及一种网络连接检测方法和装置。



背景技术:

随着移动互联网技术的发展,通过移动终端进行娱乐和工作已经成为人们生活中的重要内容。保持网络持续可靠的连接也就成了人们关心的问题。传统的方式,是通过移动终端向服务器发送心跳包,并接收服务器返回的心跳包来确定该移动终端保存连接。但是频繁的发送心跳包会浪费移动终端的流量,心跳包发送的太少就无法实时监测到网络连接的状态。因此,如何实时监测到网络连接状态并有效降低流量消耗成为目前需要解决的一个技术问题。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种能够实时监测网络连接状态并有效降低流量消耗的网络连接检测方法和装置。

一种网络连接检测方法,所述方法包括:

识别当前所处的场景类型;

确定所识别出的场景类型对应的发送心跳包的时间间隔,所述时间间隔按照场景类型对应的预设规则变化;

在所述时间间隔内未接收到服务器发送的数据包时,向服务器发送心跳包;

判断在发送所述心跳包后的预设时间内是否接收到所述服务器根据所述心跳包返回的数据包;

若是,则确定与所述服务器保持连接;

否则,则确定与所述服务器已断开连接。

一种网络连接检测装置,所述装置包括:

识别模块,用于识别当前所处的场景类型;

确定模块,用于确定所识别出的场景类型对应的心跳包的时间间隔,所述心跳包的时间间隔按照所述场景类型对应的预设规则变化;

发送模块,用于在所述心跳包的时间间隔内未接收到服务器发送的数据包时,向服务器发送心跳包;

判断模块,用于判断在发送所述心跳包后的预设时间内是否接收到所述服务器根据所述心跳包返回的数据包;

所述确定模块还用于若在所述预设时间内接收到服务器根据所述心跳包返回的数据包,则确定与所述服务器保持连接;

所述确定模块还用于若在所述预设时间内未接收到服务器根据所述心跳包返回的数据包,则确定与所述服务器已断开连接。

上述网络连接检测方法和装置,识别当前所处的场景类型;确定所识别出的场景类型对应的发送心跳包的时间间隔,时间间隔按照场景类型对应的预设规则变化;在时间间隔内未接收到服务器发送的数据包时,向服务器发送心跳包;判断在发送心跳包后的预设时间内是否接收到服务器根据心跳包返回的数据包;若是,则确定与服务器保持连接;否则,则确定与服务器已断开连接。由于向服务器发送心跳包的时间间隔是根据当前所处的场景类型来确定的。而且心跳包的时间间隔还可以按照场景类型对应的预设规则进行变化,由此使得不同场景类型对应的心跳包的时间间隔不同,从而克服了传统的发送心跳包的时间间隔固定不变而导致心跳包发送过于频繁或者过少的问题。由此根据场景类型确定发送心跳包的时间间隔能够实时监测到网络连接状态,并且有效降低了流量消耗。

附图说明

图1为一个实施例中网络连接检测方法的应用环境图;

图2为一个实施例中网络连接检测方法的流程图;

图3为一个实施例中网络连接检测装置的结构示意图;

图4为另一个实施例中网络连接检测装置的结构示意图;

图5为再一个实施例中网络连接检测装置的结构示意图。

具体实施方式

本发明实施例所提供的网络连接检测方法应用于如图1所示的应用环境中。终端102通过网络与服务器104相连接。终端包括智能手机、平板电脑、个人笔记本电脑和个人数字助理等。终端102中可以多种场景类型,不同场景类型发送心跳包的时间间隔不同。每种场景类型都具有对应的预设规则,可以将发送心跳包的时间间隔进行增加。终端102在识别出当前所处的场景类型后,确定该场景类型对应的发送心跳包的时间间隔。终端102在该时间间隔内如果接收到服务器104发送的任何数据包,都表示终端102与服务器104之间的网络保持连接。终端102在该时间间隔内如果没有接收到服务器104发送的数据包,则向服务器104发送心跳包。如果终端102在发送心跳包的预设时间内接收到服务器104响应心跳包后返回的数据包,则确定终端102与服务器104之间的网络保持连接,否则,则确定终端102与服务器104之间的网络已断开连接。在检测到网络保持连接后,终端102按照与场景类型对应的预设规则增加发送心跳包的时间间隔,并再次向服务器104发送心跳包。在检测到网络保持连接后,移动终端102再次增加发送心跳包的时间间隔,直到增加至与场景类型对应的上限值。由于终端102向服务器104发送心跳包的时间间隔是根据当前所处的场景类型来确定的。而且心跳包的时间间隔还可以按照场景类型对应的预设规则进行变化,由此使得不同场景类型对应的心跳包的时间间隔不同,从而克服了传统的发送心跳包的时间间隔固定不变而导致心跳包发送过于频繁或者过少的问题。由此根据场景类型确定发送心跳包的时间间隔能够实时监测到网络连接状态,并且有效降低了流量消耗。

在一个实施例中,如图2所示,提供了一种网络连接检测方法,以该方法应用于终端为例进行说明,该方法具体包括:

步骤202,识别当前所处的场景类型。

场景类型可以有多种。不同的场景类型对信息的实时性要求不同。信息的实时性是指信息发生变化时发生变化的信息能够被同步获悉。场景类型可以包括实时性高的场景类型和实时性低的场景类型。

步骤204,确定所识别出的场景类型对应的发送心跳包的时间间隔,时间间隔按照场景类型对应的预设规则变化。

对不同的场景类型预先设置了不同的发送心跳包的时间间隔初始值和心跳包的预设规则。实时性高的场景类型对应的发送心跳包的时间间隔初始值小于实时性低的场景类型对应的发送心跳包的时间间隔初始值。例如,实时性高的场景类型可以设置较短的发送心跳包的时间间隔初始值,如6s,实时性低的场景类型可以设置较长的发送心跳包的时间间隔初始值,如10s。每种场景类型对应的发送心跳包的时间间隔可以在初始值的基础上按照预设规则进行变化。根据场景类型来确定发送心跳包的时间间隔,从而避免了传统的发送心跳包的时间间隔固定不变而导致心跳包发送过于频繁或者过少的情形。

步骤206,在该时间间隔内未接收到服务器发送的数据包时,向服务器发送心跳包。

在终端与服务器连接成功后,根据当前所处的场景类型调用第一定时器函数。利用第一定时器函数来检测发送心跳包的时间间隔内是否接收到服务器发送的数据包。如果在发送心跳包的时间间隔内接收到服务器发送的任何数据包则表示当前与服务器处于连接状态。服务器发送的数据包可以是心跳包也可以是与终端进行交互的其他信息。如果在发送心跳包的时间间隔内未接收到服务器发送的数据包,则终端向服务器发送心跳包,同时调用超时处理函数。通过超时处理函数检测是否在预设时间内接收到服务器返回的数据包。

步骤208,判断在发送心跳包后的预设时间内是否接收到服务器根据心跳包返回的数据包;若是,则进入步骤210,否则,则进入步骤212。

如果终端与服务器之间的网络保持连接,服务器在接收到心跳包后,会响应该心跳包,并在预设时间内返回数据包。具体的,可以是返回心跳包,也可以是返回与终端进行交互的其他信息。预设时间可以比发送心跳包的时间间隔短。例如,发送心跳包的时间间隔为6s,预设时间为5s。

步骤210,确定与服务器保持连接。

步骤212,确定与服务器已断开连接。

如果在预设时间内未接收到服务器返回的任何数据包,则确定终端与服务 器之间的网络连接已断开。调用超时回调函数,停止检测网络状态。

本实施例中,识别当前所处的场景类型;确定所识别出的场景类型对应的发送心跳包的时间间隔,时间间隔按照场景类型对应的预设规则变化;在时间间隔内未接收到服务器发送的数据包时,向服务器发送心跳包;判断在发送心跳包后的预设时间内是否接收到服务器根据心跳包返回的数据包;若是,则确定与服务器保持连接;否则,则确定与服务器已断开连接。由于向服务器发送心跳包的时间间隔是根据当前所处的场景类型来确定的。而且心跳包的时间间隔还可以按照场景类型对应的预设规则进行变化,由此使得不同场景类型对应的心跳包的时间间隔不同,从而克服了传统的发送心跳包的时间间隔固定不变而导致心跳包发送过于频繁或者过少的问题。由此根据场景类型确定发送心跳包的时间间隔能够实时监测到网络连接状态,并且有效降低了流量消耗。

在一个实施例中,在识别当前所处的场景类型的步骤之前,还包括:展示多个场景的界面;获取用户在该界面选择的场景类型;记录与用户选择的场景类型对应的场景状态值;识别当前所处的场景类型的步骤包括:根据场景状态值确定用户当前所处的场景类型。

本实施例中,终端可以展示多个场景的界面。具体的,可以通过终端上安装的应用程序来展示多个场景的界面。进一步的,可以通过同一个应用程序来展示多个场景的界面,也可以通过不同的应用程序来展示不同的场景的界面。其中多个场景可以集中在一个界面中,也可以分布在不同的界面中。每个场景类型都具有预设的场景状态值。将用户选择的场景类型对应的场景状态值进行记录,由此能够根据已记录的场景状态值来确定用户当前所处的场景类型。从而能够根据场景类型来确定心跳包的时间间隔。

在一个实施例中,在确定与服务器保持连接的步骤之后,还包括:按照与场景类型对应的预设规则增加发送心跳包的时间间隔;重复执行在时间间隔内未接收到服务器发送的数据包时,向服务器发送心跳包的步骤,直到发送心跳包的时间间隔被增加至与场景类型对应的上限值。

本实施例中,每种场景类型都设置有增加发送心跳包的时间间隔的预设规则。预设规则可以是在初次发送心跳包的时间间隔作为初始值,在确定终端与 服务器之间的网络保持连接后,以该初始值为基数增加预设百分比的时间间隔值作为下一次发送心跳包的时间间隔。在下一次发送心跳包后确认终端与服务器之间的网络保持连接后,再次以下一次发送心跳包的时间间隔为基数增加预设百分比的时间间隔值,以此逐渐增加发送心跳包的时间间隔。也就是以初次发送心跳包的时间间隔作为初始值,以n作为幂指数,将初始值*(1+预设百分比)n作为第n次发送心跳包的时间间隔,直至增加到场景类型对应的上限值。其中实时性高的场景类型对应的发送心跳包的初始值比实时性低的场景类型对应的发送心跳包的初始值低,实时性高的场景类型对应的预设百分比比实时性高的场景类型对应的预设百分比低,而且实时性高的场景类型对应的上限值比实时性低的场景类型对应的上限值要低。例如,实时性高的场景类型对应的发送心跳包的初始值为6s,预设百分比为5%,上限值为12s,则第二次发送心跳包的时间间隔为6+6*5%=6.3s。实时性低的场景类型对应的发送心跳包的初始值为10s,预设百分比为10%,上限值为40s,则第二次发送心跳包的时间间隔为10+10*10%=11s。由此能够将实时性高的场景类型对应的发送心跳包的时间间隔与实时性低的场景类型对应的发送心跳包的时间间隔有效区分开来,进而能够在实时性低的场景类型中与实时性高的场景类型中分别实时监测终端与服务器之间的网络连接状态,又逐步将发送心跳包的时间间隔增长,从而有效节省引动终端的流量消耗。

在一个实施例中,场景类型包括实时性高的场景类型和实时性低的场景类型,在确定与服务器保持连接的步骤之后,还包括:当从实时性高的场景类型切换至实时性低的场景类型时,判断实时性高的场景类型对应的发送心跳包的时间间隔是否大于实时性低的场景类型对应的发送心跳包的时间间隔;若是,则以实时性高的场景类型对应的发送心跳包的时间间隔作为实时性低的场景类型对应的发送心跳包的初始时间间隔;重复执行在时间间隔内未接收到服务器发送的数据包时,向服务器发送心跳包的步骤;按实时性低的场景类型对应的预设规则增加发送心跳包的时间间隔直到增加至实时性低的场景类型对应的上限值。

本实施例中,场景类型可以随意切换。由于场景类型切换的时间极短,耗 时为毫秒级,因此在场景类型切换时可以不需要检测网络是否连接。当用户从实时性高的场景类型切换至实时性低的场景类型时,也就意味着发送心跳包的时间间隔可能要缩短。此时需要判断切换前的实时性高的场景类型对应的发送心跳包的时间间隔是否大于切换后的实时性低的场景类型对应的发送心跳包的时间间隔,具体的,可以将切换前的实时性高的场景类型对应的发送心跳包的时间间隔与切换后的实时性低的场景类型对应的发送心跳包的时间间隔的预设初始值进行比较。

由于在场景类型切换之前已经确认终端与服务器之间的网络保持连接,如果切换前的实时性高的场景类型对应的发送心跳包的时间间隔大于切换后的实时性低的场景类型对应的发送心跳包的时间间隔的预设初始值,可以将切换前实时性高的场景类型对应的发送心跳包的时间间隔作为切换后实时性低的场景类型对应的发送心跳包的初始时间间隔。在以初始时间间隔发送心跳包后的预设时间内接收到服务器响应心跳包返回的数据包后,则确定终端与服务器之间的网络保持连接。并且按实时性低的场景类型对应的预设规则增加发送心跳包的时间间隔直到增加至实时性低的场景类型对应的上限值。由于切换后实时性低的场景类型对应的发送心跳包的初始时间间隔比预设初始值要高,从而使得切换后实时性低的场景类型对应的首次发送心跳包的时间间隔比预设的时间间隔要长,进而按照预设规则增加发送心跳包的时间间隔后,使得切换后实时性低的场景类型每次发送心跳包的时间间隔与预设的时间间隔要长。因此能够在实时监测网络连接状态时还可以进一步降低终端的流量损耗。

如果切换前的实时性高的场景类型对应的发送心跳包的时间间隔小于切换后的实时性低的场景类型对应的发送心跳包的时间间隔的预设初始值,则采用切换后的实时性低的场景类型对应的发送心跳包的时间间隔的预设初始值作为发送心跳包的初始时间间隔。在以初始时间间隔发送心跳包后的预设时间内接收到服务器响应心跳包返回的数据包后,则确定终端与服务器之间的网络保持连接。并且按实时性低的场景类型对应的预设规则增加发送心跳包的时间间隔直到增加至实时性低的场景类型对应的上限值。以便在场景类型切换后可以获得一个比场景类型切换前发送心跳包的时间间隔长的时间间隔,从而能够在实 时监测网络连接状态时还可以进一步降低终端的流量损耗。

在一个实施例中,场景类型包括实时性高的场景类型和实时性低的场景类型,在确定与服务器保持连接的步骤之后,还包括:当从实时性低的场景类型切换至实时性高的场景类型时,判断实时性低的场景类型对应的发送心跳包的时间间隔是否大于实时性高的场景类型对应的发送心跳包的时间间隔的上限值;若是,则获取实时性高的场景类型对应的发送心跳包的时间间隔预设初始值;否则,将实时性低的场景类型对应的发送心跳包的时间间隔作为实时性高的场景类型对应的发送心跳包的初始时间间隔;重复执行在时间间隔内未接收到服务器发送的数据包时,向服务器发送心跳包的步骤;按实时性高的场景类型对应的预设规则增加发送心跳包的时间间隔直到增加至实时性高的场景类型对应的上限值。

本实施例中,当用户从实时性低的场景类型切换至实时性高的场景类型时,也就意味着发送心跳包的时间间隔可能要加长。此时需要判断切换前的实时性低的场景类型对应的发送心跳包的时间间隔是否大于切换后实时性高的场景类型对应的发送心跳包的时间间隔的上限值。如果是,则表示采用切换前的实时性低的场景类型对应的发送心跳包的时间间隔已经不符合切换后实时性高的场景类型检测网络连接状态的要求,需要获取实时性高的场景类型对应的发送心跳包的时间间隔预设初始值。否则,则表示采用切换前的实时性低的场景类型对应的发送心跳包的时间间隔能够符合切换后实时性高的场景类型检测网络连接状态的要求,可以将实时性低的场景类型对应的发送心跳包的时间间隔作为实时性高的场景类型对应的发送心跳包的初始时间间隔。

在以该初始时间间隔发送心跳包后的预设时间内接收到服务器响应心跳包返回的数据包后,则确定终端与服务器之间的网络保持连接。并且按实时性高的场景类型对应的预设规则增加发送心跳包的时间间隔直到增加至实时性高的场景类型对应的上限值。将实时性低的场景类型对应的发送心跳包的时间间隔作为实时性高的场景类型对应的发送心跳包的初始时间间隔,使得切换后实时性高的场景类型对应的发送心跳包的初始时间间隔比预设初始值要高,从而使得切换后实时性高的场景类型对应的首次发送心跳包的时间间隔比预设的时间 间隔要长,进而按照预设规则增加发送心跳包的时间间隔后,使得切换后实时性高的场景类型每次发送心跳包的时间间隔与预设的时间间隔要长。因此能够在实时监测网络连接状态时还可以进一步降低终端的流量损耗。

进一步的,场景类型可以包括多种,例如实时性中的场景类型等。可以在多个场景类型中进行多次切换,每次切换后,都可采用上述方式进行比较,以便在场景类型切换后可以获得一个比发送心跳包的预设初始值长的时间间隔,从而能够在实时监测网络连接状态时还可以进一步降低终端的流量损耗。

在一个实施例中,在直到发送心跳包的时间间隔被增加至与场景类型对应的上限值的步骤之后,还包括:将上限值确定为场景类型对应的发送心跳包的固定时间间隔;在固定时间间隔内未接收到服务器发送的数据包时,向服务器发送心跳包;判断在发送心跳包后的预设时间内是否接收到服务器根据心跳包返回的数据包;若是,则确定与服务器保持连接;否则,则确定与服务器已断开连接。

本实施例中,在发送心跳包的时间间隔被增加至与场景类型对应的上限值的步骤之后,如果不进行场景类型切换,则终端将该上限值作为发送心跳包的固定时间间隔,并以该固定时间间隔向服务器发送心跳包来检测网络是否保持连接。如果在切换场景类型后,则可以将切换后场景类型对应的上限值作为发送心跳包的固定时间间隔。具体的,当从实时性高的场景类型切换至实时性低的场景类型时,将实时性低的场景类型对应的上限值作为发送心跳包的固定时间间隔,并以该固定时间间隔向服务器发送心跳包来检测网络是否保持连接。当从实时性低的场景类型切换至实时性高的场景类型时,将实时性高的场景类型对应的上限值作为发送心跳包的固定时间间隔,并以该固定时间间隔向服务器发送心跳包来检测网络是否保持连接。

进一步的,如果是多次切换场景类型,可以将最末次切换后的场景类型对应的上限值作为发送心跳包的固定时间间隔,并以该固定时间间隔向服务器发送心跳包来检测网络是否保持连接。

在一个实施例中,如图3所示,提供了一种网络连接检测装置,该装置包 括:识别模块302、确定模块304、发送模块306和判断模块308,其中:

识别模块302,用于识别当前所处的场景类型。

确定模块304,用于确定所识别出的场景类型对应的心跳包的时间间隔,心跳包的时间间隔按照场景类型对应的预设规则变化。

发送模块306,用于在心跳包的时间间隔内未接收到服务器发送的数据包时,向服务器发送心跳包。

判断模块308,用于判断在发送所述心跳包后的预设时间内是否接收到服务器根据心跳包返回的数据包。

确定模块304还用于若在预设时间内接收到服务器根据心跳包返回的数据包,则确定与服务器保持连接。

确定模块304还用于若在预设时间内未接收到服务器根据心跳包返回的数据包,则确定与服务器已断开连接。

在一个实施例中,如图4所示,该装置还包括:展示模块310、获取模块312和记录模块314,其中:

展示模块310,用于展示多个场景的界面。

获取模块312,用于获取用户在界面选择的场景类型。

记录模块314,用于记录与用户选择的场景类型对应的场景状态值。

识别模块302还用于根据场景状态值确定用户当前所处的场景类型。

在一个实施例中,如图5所示,该装置还包括:增加模块316,用于按照与场景类型对应的预设规则增加发送心跳包的时间间隔;发放模块306还用于重复执行在时间间隔内未接收到服务器发送的数据包时,向服务器发送心跳包的步骤;增加模块316还用于将发送心跳包的时间间隔被增加至与场景类型对应的上限值。

在一个实施例中,场景类型包括实时性高的场景类型和实时性低的场景类型,判断模块308还用于当从实时性高的场景类型切换至实时性低的场景类型时,判断实时性高的场景类型对应的发送心跳包的时间间隔是否大于实时性低的场景类型对应的发送心跳包的时间间隔;确定模块304还用于若实时性高的场景类型对应的发送心跳包的时间间隔大于实时性低的场景类型对应的发送心 跳包的时间间隔,则以实时性高的场景类型对应的发送心跳包的时间间隔作为实时性低的场景类型对应的发送心跳包的初始时间间隔;发送模块306还用于重复执行在时间间隔内未接收到服务器发送的数据包时,向服务器发送心跳包的步骤;增加模块316还用于按实时性低的场景类型对应的预设规则增加发送心跳包的时间间隔直到增加至实时性低的场景类型对应的上限值。

在一个实施例中,场景类型包括实时性高的场景类型和实时性低的场景类型,判断模块308还用于当从实时性低的场景类型切换至实时性高的场景类型时,判断实时性低的场景类型对应的发送心跳包的时间间隔是否大于实时性高的场景类型对应的发送心跳包的时间间隔的上限值;获取模块312还用于若实时性低的场景类型对应的发送心跳包的时间间隔大于实时性高的场景类型对应的发送心跳包的时间间隔的上限值,则获取实时性高的场景类型对应的发送心跳包的时间间隔初始值;确定模块304还用于若实时性低的场景类型对应的发送心跳包的时间间隔小于实时性高的场景类型对应的发送心跳包的时间间隔的上限值,将实时性低的场景类型对应的发送心跳包的时间间隔作为实时性高的场景类型对应的发送心跳包的初始时间间隔;发送模块306还用于重复执行在时间间隔内未接收到服务器发送的数据包时,向服务器发送心跳包的步骤;增加模块316还用于按实时性高的场景类型对应的预设规则增加发送心跳包的时间间隔直到增加至实时性高的场景类型对应的上限值。

在一个实施例中,确定模块304还用于将上限值确定为场景类型对应的发送心跳包的固定时间间隔;发送模块306还用于在固定时间间隔内未接收到服务器发送的数据包时,向服务器发送心跳包;判断模块308还用于判断在发送所述心跳包后的预设时间内是否接收到服务器根据心跳包返回的数据包;确定模块304还用于若在预设时间内接收到服务器根据所述心跳包返回的数据包,则确定与服务器保持连接;确定模块304还用于若在预设时间内未接收到服务器根据所述心跳包返回的数据包,则确定与服务器已断开连接。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

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