CN113965495A - 终端应用程序的探活方法、装置、电子设备及存储介质 - Google Patents
终端应用程序的探活方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113965495A CN113965495A CN202111151628.8A CN202111151628A CN113965495A CN 113965495 A CN113965495 A CN 113965495A CN 202111151628 A CN202111151628 A CN 202111151628A CN 113965495 A CN113965495 A CN 113965495A
- Authority
- CN
- China
- Prior art keywords
- server
- terminal application
- activity
- application program
- detecting
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000000694 effects Effects 0.000 title claims abstract description 131
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000001514 detection method Methods 0.000 claims abstract description 96
- 238000012544 monitoring process Methods 0.000 claims abstract description 9
- 230000004044 response Effects 0.000 claims description 49
- 230000008859 change Effects 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 17
- 230000004913 activation Effects 0.000 claims description 6
- 230000007246 mechanism Effects 0.000 abstract description 6
- 230000005540 biological transmission Effects 0.000 description 15
- 238000004891 communication Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 4
- 230000003213 activating effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000005611 electricity Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000005406 washing Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W24/00—Supervisory, monitoring or testing arrangements
- H04W24/02—Arrangements for optimising operational condition
Abstract
本发明提供一种终端应用程序的探活方法、装置、电子设备及存储介质,终端应用程序的探活方法,包括:将终端应用程序与服务器进行网络连接,基于目标频率对所述服务器进行探活,并获取第一探活结果;监听所述终端应用程序与所述服务器之间的网络状态,在所述网络状态发生变化的情况下,对所述服务器进行探活,并获取第二探活结果;在基于所述第一探活结果或者所述第二探活结果,确定所述网络连接不可用的情况下,重启所述终端应用程序与所述服务器的网络连接。本发明提供的终端应用程序的探活方法、装置、电子设备及存储介质,通过设定有效的规则和事件触发机制,提高终端应用程序对服务器探活的有效性和及时性,减少对网络和服务器的压力。
Description
技术领域
本发明涉及互联网技术领域,尤其涉及一种终端应用程序的探活方法、装置、电子设备及存储介质。
背景技术
随着移动互联网和物联网的发展,家庭智能设备越来越多,使用频率越来越高,目前一般是使用终端应用程序来控制家庭智能设备。在控制家庭智能设备的应用场景中,终端应用程序经常需要从服务器获取网络数据。为了保证持续的获取网络数据,需要终端应用程序对服务器定时触发探活,以确保终端应用程序与服务器之间保持正常网络连接。为了能够及时获取服务器发送的网络数据,定时探活的频率非常高,相邻两次定时探活之间的时间间隔非常小,这样导致会过多占用服务器的网络资源,影响服务器的访问体验。因此,终端应用程序采用现有的技术方案,对服务器进行探活,无法兼顾有效性和及时性。
发明内容
本发明提供一种终端应用程序的探活方法、装置、电子设备及存储介质,用以解决现有技术中终端应用程序对服务器进行探活,无法兼顾有效性和及时性的缺陷,通过设定有效的规则和事件触发机制,提高终端应用程序对服务器探活的有效性和及时性,减少对网络和服务器的压力
本发明提供一种终端应用程序的探活方法,包括:
将终端应用程序与服务器进行网络连接,基于目标频率对所述服务器进行探活,并获取第一探活结果;
监听所述终端应用程序与所述服务器之间的网络状态,在所述网络状态发生变化的情况下,对所述服务器进行探活,并获取第二探活结果;
在基于所述第一探活结果或者所述第二探活结果,确定所述网络连接不可用的情况下,重启所述终端应用程序与所述服务器的网络连接。
根据本发明提供的终端应用程序的探活方法,所述基于目标频率对所述服务器进行探活,包括:
基于所述目标频率确定当前时刻满足所述终端应用程序对所述服务器进行探活的情况下,发送心跳包至所述服务器;
在发送所述心跳包后,在预设时间未接收到所述服务器基于所述心跳包返回的响应,且本次探活发送心跳包的次数低于目标次数的情况下,再重发心跳包至所述服务器。
根据本发明提供的终端应用程序的探活方法,所述在所述网络状态发生变化的情况下,对所述服务器进行探活,包括:
在所述网络状态发生变化的情况下,发送心跳包至所述服务器;
在发送所述心跳包后,在预设时间未接收到所述服务器基于所述心跳包返回的响应,且本次探活发送心跳包的次数低于目标次数的情况下,再重发心跳包至所述服务器。
根据本发明提供的终端应用程序的探活方法,所述第一探活结果和所述第二探活结果均包括:在一次探活中,在发送心跳包后的预设时间未接收到所述服务器返回响应的次数;其中,所述响应为所述服务器基于所述终端应用程序发送的心跳包作出的;
所述基于所述第一探活结果或者所述第二探活结果,确定所述网络连接不可用,包括:
在一次探活中,在所述预设时间未接收到所述服务器返回的响应的次数达到目标次数的情况下,则确定所述网络连接不可用。
根据本发明提供的终端应用程序的探活方法,还包括:
在基于所述第二探活结果,确定所述网络连接可用的情况下,延迟下一次定时探活的时间。
根据本发明提供的终端应用程序的探活方法,所述网络连接为消息队列遥测传输协议网络连接。
本发明还提供一种终端应用程序的探活装置,包括:
第一探活模块,用于将终端应用程序与服务器进行网络连接,基于目标频率对所述服务器进行探活,并获取第一探活结果;
第二探活模块,用于监听所述终端应用程序与所述服务器之间的网络状态,在所述网络状态发生变化的情况下,对所述服务器进行探活,并获取第二探活结果;
网络重启模块,用于在基于所述第一探活结果或者所述第二探活结果,确定所述网络连接不可用的情况下,重启所述终端应用程序与所述服务器的网络连接。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述终端应用程序的探活方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述终端应用程序的探活方法的步骤。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述终端应用程序的探活方法的步骤。
本发明提供的终端应用程序的探活方法、装置、电子设备及存储介质,当终端应用程序监听到其与服务器之间的网络连接状态发生变化时,就进行探活,以确保终端应用程序与服务器之间的网络连接正常可用,保证及时接收到服务器发送的消息。
另一方面,终端应用程序还以目标频率进行探活,以确保终端应用程序与服务器之间的网络连接状态未发生变化时,也可以进行探活,保证终端应用程序与服务器之间的网络连接可用。
由于采用上述两种不同的探活方式,通过网络连接状态触发的探活,来确保终端应用程序可以即时收到服务器发送的消息,进而本发明中第一种探活方式对应的目标频率相对于现有技术方案中的定时探活频率可以降低。
因此,本发明提供的探活方法可以通过设定有效的规则和事件触发机制,提高终端应用程序对服务器探活的有效性和及时性,减少对网络和服务器的压力。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的终端应用程序的探活方法的流程示意图之一;
图2是本发明提供的终端应用程序的探活方法的流程示意图之二;
图3是本发明提供的消息队列遥测传输协议网络的消息通信示意图;
图4是本发明提供的终端应用程序的探活装置的结构示意图;
图5是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合图1-图5描述本发明的终端应用程序的探活方法、装置、电子设备及存储介质。
本发明提供的终端应用程序的探活方法应用于终端应用程序,如图1所示,本发明提供的终端应用程序的探活方法包括:
步骤110、将终端应用程序与服务器进行网络连接,基于目标频率对服务器进行探活,并获取第一探活结果。
可以理解的是,步骤110中的探活方式,也可称为定时探活。终端可以是手机或者平板电脑,终端应用程序也即是安装在手机或者平板电脑上的应用程序。终端应用程序可以用于控制智能家电设备,例如,终端应用程序通过网络可以控制空调、冰箱、洗衣机或者电表箱等智能家电设备。
需要说明的是,目标频率也即是步骤110中,终端应用程序对服务器进行探活的频率。目标频率可以预先设置,根据终端应用程序的应用场景,目标频率有所不同。对于使用频率低的智能家电设备,终端应用程序对应的目标频率偏低,对于使用频率高的智能家电设备,终端应用程序对应的目标频率偏高。
在对服务器进行探活之前,先启动终端应用程序,开启终端应用程序与服务器之间的网络连接,再判断终端应用程序与服务器之间的网络连接是否成功,若终端应用程序与服务器之间的网络连接成功,则终端应用程序开始对服务器进行探活。
步骤120、监听终端应用程序与服务器之间的网络状态,在网络状态发生变化的情况下,对服务器进行探活,并获取第二探活结果。
可以理解的是,步骤120中的探活方式,也可称为即时探活。当终端应用程序在前台运行时,监测终端应用程序在运行中的网络状态变化,确定终端应用程序与服务器之间的网络连接是否发生改变。
当终端应用程序从后台切换到前台的过程中,终端应用程序,终端应用程序的网络状态会发生变化,对该种状态的网络变化也可以进行监听。
步骤130、在基于第一探活结果或者第二探活结果,确定网络连接不可用的情况下,重启终端应用程序与服务器的网络连接,如图2所示。
可以理解的是,在终端应用程序基于网络状态发生变化对服务器进行探活的时候,可以基于第二探活结果确定终端应用程序与服务器之间的网络连接是否可用,若终端应用程序与服务器之间的网络连接不可用,则重启终端应用程序与服务器的网络连接。
在终端应用程序基于目标频率对服务器进行探活的时候,可以基于第一探活结果确定终端应用程序与服务器之间的网络连接是否可用,若终端应用程序与服务器之间的网络连接不可用,则重启终端应用程序与服务器的网络连接。
需要说明的是,终端应用程序与服务器之间的基于目标频率探活和基于网络状态变化探活是错开的,也即是,终端应用程序在基于目标频率对服务器进行探活的时刻,就不会基于网络状态变化对服务器进行探活,终端应用程序在基于网络状态变化对服务器进行探活的时刻,就不会基于目标频率对服务器进行探活。
在一些实施例中,基于目标频率对服务器进行探活,包括:
基于目标频率确定当前时刻满足终端应用程序对服务器进行探活的情况下,发送心跳包至服务器;
在发送心跳包后,在预设时间未接收到服务器基于心跳包返回的响应,且本次探活发送心跳包的次数低于目标次数的情况下,再重发心跳包至服务器。
可以理解的是,可以基于目标频率定时以PING包的形式发送心跳包至服务器进行探活。进行探活时,发送心跳包的时间间隔固定。
在发送心跳包后,在预设时间未接收到服务器基于心跳包返回的响应,则确定服务器的响应超时,需要重发心跳包进行再次确定。
需要说明的,预设时间是一个可以设定的时长,在终端应用程序每次发送心跳包之后,在该时长内没有接收到服务器的响应,就需要重发心跳包。
在一些实施例中,在网络状态发生变化的情况下,对服务器进行探活,包括:
在网络状态发生变化的情况下,发送心跳包至服务器;
在发送心跳包后,在预设时间未接收到服务器基于心跳包返回的响应,且本次探活发送心跳包的次数低于目标次数的情况下,再重发心跳包至服务器。
可以理解的是,在网络状态发生变化的情况下,以PING包的形式发送心跳包至服务器。
需要说明的是,终端应用程序采用基于目标频率进行探活或者基于网络状态变化进行探活,每次探活的原理和流程是相同的。
在一些实施例中,第一探活结果和第二探活结果均包括:在一次探活中,在发送心跳包后的预设时间未接收到服务器返回响应的次数;其中,响应为服务器基于终端应用程序发送的心跳包作出的。
可以理解的是,预设时间也即是预设的时长,终端应用程序每次发送心跳包之后,后面都对应一个预设时间,并判断在该预设时间内是否有接收到服务器返回的响应。
基于第一探活结果或者第二探活结果,确定网络连接不可用,包括:
在一次探活中,在预设时间未接收到服务器返回的响应的次数达到目标次数的情况下,则确定网络连接不可用。
可以理解的是,在终端应用程序对服务器基于目标频率进行探活和基于网络状态变化进行探活的时候,可以设置超时时间,也即是上述的预设时间,还设置网络连接失败重试次数,也即是上述的目标次数。
终端应用程序每次发送心跳包至服务器之后,都要判断在预设时间内是否有接收到服务器的响应,若没有接收到服务器的响应,则要累计一次,并重发心跳包至服务器,并在重发心跳包之后,判断在预设时间内是否有接收到服务器的响应,若还没有接收到服务器的响应,继续累计次数,直至在预设时间未接收到服务器返回的响应的次数达到了目标次数,则确定终端应用程序与服务器之间的网络连接不可用。
在一些实施例中,终端应用程序的探活方法还包括:
在基于第二探活结果,确定网络连接可用的情况下,延迟下一次定时探活的时间。
需要说明的是,在一次探活中,在预设时间未接收到服务器返回的响应的次数低于目标次数的情况下,则确定终端应用程序与服务器之间的网络连接可用。
可用理解的是,在终端应用程序对服务器基于网络状态变化进行探活时,发送心跳包至服务器,若在发送心跳包后的预设时间内,接收到服务器的响应,则确定终端应用程序与服务器之间的网络连接可用。
在终端应用程序对服务器基于网络状态变化进行探活时,发送心跳包至服务器,若在发送心跳包后的预设时间内,未接收到服务器的响应,则重发心跳包至服务器,直至未接收到服务器的响应次数低于目标次数,且在发送心跳包后的预设时间内,收到服务器的响应,则确定终端应用程序与服务器之间的网络连接可用。
在一些实施例中,网络连接为消息队列遥测传输协议(Message Queue TelemetryTransport,MQTT)网络连接。
可用理解的是,终端应用程序与服务器之间通过消息队列遥测传输协议网络连接,在进行探活时,发送的PING包的形式发送心跳包。
为了满足低电量消耗和低网络带宽的需求,消息队列遥测传输协议在设计之初就包含了以下一些特点:实现简单、提供数据传输的QoS(即:服务质量)、轻量、占用带宽低、可传输任意类型的数据、可保持的会话(即:session)。
消息队列遥测传输协议网络的通信是通过发布/订阅的方式来实现的,订阅和发布又是基于主题(即:Topic)的。发布方和订阅方通过这种方式来进行解耦,由于发布方和订阅方没有直接地连接,因此,发布方和订阅方之间需要一个中间方。在消息队列遥测传输协议里面我们称中间方为Broker(即:中间代理方),用来进行消息的存储和转发。一次典型的消息队列遥测传输协议网络的消息通信流程如图3所示。
发布方连接到中间代理方;订阅方连接到中间代理方,并订阅主题;发布方将主题发送给中间代理方;中间代理方收到了发布方的发送的主题,发现订阅方订阅了该主题,然后将该主题转发给订阅方;订阅方从中间代理方接收该主题。
订阅方能获得主题的前提是需要连击成功至中间的代理,且订阅主题成功。
基于消息队列遥测传输协议网络的连接和保活连接机制,可以使订阅方和中间代理方得知连接是否成功,以便重连或确保连接可用。
消息队列遥测传输协议网络保活连接:一般在连接的时候传入保持连接的参数,时间一般以秒为单位,若在1.5倍的保活连接时间内未收到任何消息那么则认为连接断开。基于消息队列遥测传输协议保活连接的参数设置,配合PINGREQ(即:探活请求)/PINGRESP(即:探活响应)数据包探测连接是否断开。
本实施例中的终端应用程序也即是订阅方,服务器也即是中间代理方,发布方可以是其他用于发布消息的服务器。
综上所述,本发明提供的终端应用程序的探活方法,当终端应用程序监听到其与服务器之间的网络连接状态发生变化时,就进行探活,以确保终端应用程序与服务器之间的网络连接正常可用,保证及时接收到服务器发送的消息。
另一方面,终端应用程序还以目标频率进行探活,以确保终端应用程序与服务器之间的网络连接状态未发生变化时,也可以进行探活,保证终端应用程序与服务器之间的网络连接可用。
由于采用上述两种不同的探活方式,通过网络连接状态触发的探活,来确保终端应用程序可以即时收到服务器发送的消息,进而本发明中第一种探活方式对应的目标频率相对于现有技术方案中的定时探活频率可以降低。
因此,本发明提供的探活方法可以通过设定有效的规则和事件触发机制,提高终端应用程序对服务器探活的有效性和及时性,减少对网络和服务器的压力。
进一步地,现有的技术方案中,终端应用程序与服务器之间为消息队列遥测传输协议网络连接时,一般是基于服务器与终端应用程序在指定时间内有无消息或者报文的传输,若没有消息或报文传输则认定网络连接中断,这种方式对于保持连接的时间参数设置和终端应用程序发送探活包的时机要求较高,且不灵活。采用本发明提供的探活方法,避免设置保持连接的时间参数,以及设置发送探活包的时机。
下面对本发明提供的终端应用程序的探活装置进行描述,下文描述的终端应用程序的探活装置与上文描述的终端应用程序的探活方法可相互对应参照。
如图4所示,本发明提供的终端应用程序的探活装置400包括:第一探活模块410、第二探活模块420和网络重启模块430。
第一探活模块410用于将终端应用程序与服务器进行网络连接,基于目标频率对服务器进行探活,并获取第一探活结果。
可以理解的是,终端可以是手机或者平板电脑,终端应用程序也即是安装在手机或者平板电脑上的应用程序。终端应用程序可以用于控制智能家电设备,例如,终端应用程序通过网络可以控制空调、冰箱、洗衣机或者电表箱等智能家电设备。
需要说明的是,目标频率可以预先设置,根据终端应用程序的应用场景,目标频率有所不同。对于使用频率低的智能家电设备,终端应用程序对应的目标频率偏低,对于使用频率高的智能家电设备,终端应用程序对应的目标频率偏高。
在终端应用程序对服务器进行探活之前,先启动终端应用程序,开启终端应用程序与服务器之间的网络连接,再判断终端应用程序与服务器之间的网络连接是否成功,若终端应用程序与服务器之间的网络连接成功,则终端应用程序开始对服务器进行探活。
第二探活模块420用于监听终端应用程序与服务器之间的网络状态,在网络状态发生变化的情况下,对服务器进行探活,并获取第二探活结果。
可以理解的是,当终端应用程序在前台运行时,监测终端应用程序在运行中的网络状态变化,确定终端应用程序与服务器之间的网络连接是否发生改变。
当终端应用程序从后台切换到前台的过程中,终端应用程序,终端应用程序的网络状态会发生变化,对该种状态的网络变化也可以进行监听。
网络重启模块430用于在基于第一探活结果或者第二探活结果,确定网络连接不可用的情况下,重启终端应用程序与服务器的网络连接。
可以理解的是,在终端应用程序对服务器基于网络状态变化进行探活的时候,可以基于第二探活结果确定终端应用程序与服务器之间的网络连接是否可用,若终端应用程序与服务器之间的网络连接不可用,则重启终端应用程序与服务器的网络连接。
在终端应用程序对服务器基于目标频率进行探活的时候,可以基于第一探活结果确定终端应用程序与服务器之间的网络连接是否可用,若终端应用程序与服务器之间的网络连接不可用,则重启终端应用程序与服务器的网络连接。
需要说明的是,终端应用程序与服务器之间的基于目标频率进行探活和基于网络状态变化进行探活是错开的,也即是,终端应用程序在基于目标频率对服务器进行探活的时刻,就不会基于网络状态变化对服务器进行探活,终端应用程序在基于网络状态变化对服务器进行探活的时刻,就不会基于目标频率对服务器进行探活。
在一些实施例中,第一探活模块410包括:第一发送单元和第二发送单元。
第一发送单元用于基于目标频率确定当前时刻满足终端应用程序基于目标频率对服务器进行探活的情况下,发送心跳包至服务器。
第二发送单元用于在发送心跳包后,在预设时间未接收到服务器基于心跳包返回的响应,且本次探活发送心跳包的次数低于目标次数的情况下,再重发心跳包至服务器。
可以理解的是,可以基于目标频率定时以PING包的形式发送心跳包至服务器进行探活。基于目标频率进行探活时,发送心跳包的时间间隔固定。
在发送心跳包后,在预设时间未接收到服务器基于心跳包返回的响应,则确定服务器的响应超时,需要重发心跳包进行再次确定。
需要说明的,预设时间是一个可以设定的时长,在终端应用程序每次发送心跳包之后,在该时长内没有接收到服务器的响应,就需要重发心跳包。
在一些实施例中,第二探活模块420包括:第三发送单元和第四发送单元。
第三发送单元用于在网络状态发生变化的情况下,发送心跳包至服务器。
第四发送单元用于在发送心跳包后,在预设时间未接收到服务器基于心跳包返回的响应,且本次探活发送心跳包的次数低于目标次数的情况下,再重发心跳包至服务器。
可以理解的是,在网络状态发生变化的情况下,以PING包的形式发送心跳包至服务器。
需要说明的是,终端应用程序采用定时探活或者即时探活,每次探活的原理和流程是相同的。
在一些实施例中,第一探活结果和第二探活结果均包括:在一次探活中,在发送心跳包后的预设时间未接收到服务器返回响应的次数;其中,响应为服务器基于终端应用程序发送的心跳包作出的。
可以理解的是,预设时间也即是预设的时长,终端应用程序每次发送心跳包之后,后面都对应一个预设时间,并判断在该预设时间内是否有接收到服务器返回的响应。
网络重启模块430进一步用于在一次探活中,在预设时间未接收到服务器返回的响应的次数达到目标次数的情况下,则确定网络连接不可用。
可以理解的是,在终端应用程序对服务器进行探活时候,可以设置超时时间,也即是上述的预设时间,还设置网络连接失败重试次数,也即是上述的目标次数。
终端应用程序每次发送心跳包至服务器之后,都要判断在预设时间内是否有接收到服务器的响应,若没有接收到服务器的响应,则要累计一次,并重发心跳包至服务器,并在重发心跳包之后,判断在预设时间内是否有接收到服务器的响应,若还没有接收到服务器的响应,继续累计次数,直至在预设时间未接收到服务器返回的响应的次数达到了目标次数,则确定终端应用程序与服务器之间的网络连接不可用。
在一些实施例中,终端应用程序的探活装置400还包括:探活延迟模块。
探活延迟模块用于在基于第二探活结果,确定网络连接可用的情况下,延迟下一次定时探活的时间。
需要说明的是,在一次探活中,在预设时间未接收到服务器返回的响应的次数低于目标次数的情况下,则确定终端应用程序与服务器之间的网络连接可用。
可用理解的是,在终端应用程序基于网络状态变化对服务器进行探活时,发送心跳包至服务器,若在发送心跳包后的预设时间内,接收到服务器的响应,则确定终端应用程序与服务器之间的网络连接可用。
在终端应用程序基于网络状态变化对服务器进行探活时,发送心跳包至服务器,若在发送心跳包后的预设时间内,未接收到服务器的响应,则重发心跳包至服务器,直至未接收到服务器的响应次数低于目标次数,且在发送心跳包后的预设时间内,收到服务器的响应,则确定终端应用程序与服务器之间的网络连接可用。
在一些实施例中,网络连接为消息队列遥测传输协议网络连接。
为了满足低电量消耗和低网络带宽的需求,消息队列遥测传输协议在设计之初就包含了以下一些特点:实现简单、提供数据传输的QoS、轻量、占用带宽低、可传输任意类型的数据、可保持的会话。
消息队列遥测传输协议网络的通信是通过发布/订阅的方式来实现的,订阅和发布又是基于主题的。发布方和订阅方通过这种方式来进行解耦,由于发布方和订阅方没有直接地连接,因此,发布方和订阅方之间需要一个中间方。在消息队列遥测传输协议里面我们称中间方为Broker,用来进行消息的存储和转发。一次典型的消息队列遥测传输协议网络的消息通信流程如图3所示。
发布方连接到中间代理方;订阅方连接到中间代理方,并订阅主题;发布方将主题发送给中间代理方;中间代理方收到了发布方的发送的主题,发现订阅方订阅了该主题,然后将该主题转发给订阅方;订阅方从中间代理方接收该主题。
订阅方能获得主题的前提是需要连击成功至中间的代理,且订阅主题成功。
基于消息队列遥测传输协议网络的连接和保活连接机制,可以使订阅方和中间代理方得知连接是否成功,以便重连或确保连接可用。
消息队列遥测传输协议网络保活连接:一般在连接的时候传入保持连接的参数,时间一般以秒为单位,若在1.5倍的保活连接时间内未收到任何消息那么则认为连接断开。基于消息队列遥测传输协议保活连接的参数设置,配合PINGREQ/PINGRESP数据包探测连接是否断开。
本实施例中的终端应用程序也即是订阅方,服务器也即是中间代理方,发布方可以是其他用于发布消息的服务器。
下面对本发明提供的电子设备及存储介质进行描述,下文描述的电子设备及存储介质与上文描述的终端应用程序的探活方法可相互对应参照。
图5示例了一种电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)510、通信接口(Communications Interface)520、存储器(memory)530和通信总线540,其中,处理器510,通信接口520,存储器530通过通信总线540完成相互间的通信。处理器510可以调用存储器530中的逻辑指令,以执行终端应用程序的探活方法,该方法包括:
步骤110、将终端应用程序与服务器进行网络连接,基于目标频率对服务器进行探活,并获取第一探活结果;
步骤120、监听终端应用程序与服务器之间的网络状态,在网络状态发生变化的情况下,对服务器进行探活,并获取第二探活结果;
步骤130、在基于第一探活结果或者第二探活结果,确定网络连接不可用的情况下,重启终端应用程序与服务器的网络连接。
此外,上述的存储器530中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的终端应用程序的探活方法,该方法包括:
步骤110、将终端应用程序与服务器进行网络连接,基于目标频率对服务器进行探活,并获取第一探活结果;
步骤120、监听终端应用程序与服务器之间的网络状态,在网络状态发生变化的情况下,对服务器进行探活,并获取第二探活结果;
步骤130、在基于第一探活结果或者第二探活结果,确定网络连接不可用的情况下,重启终端应用程序与服务器的网络连接。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的终端应用程序的探活方法,该方法包括:
步骤110、将终端应用程序与服务器进行网络连接,基于目标频率对服务器进行探活,并获取第一探活结果;
步骤120、监听终端应用程序与服务器之间的网络状态,在网络状态发生变化的情况下,对服务器进行探活,并获取第二探活结果;
步骤130、在基于第一探活结果或者第二探活结果,确定网络连接不可用的情况下,重启终端应用程序与服务器的网络连接。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种终端应用程序的探活方法,其特征在于,包括:
将终端应用程序与服务器进行网络连接,基于目标频率对所述服务器进行探活,并获取第一探活结果;
监听所述终端应用程序与所述服务器之间的网络状态,在所述网络状态发生变化的情况下,对所述服务器进行探活,并获取第二探活结果;
在基于所述第一探活结果或者所述第二探活结果,确定所述网络连接不可用的情况下,重启所述终端应用程序与所述服务器的网络连接。
2.根据权利要求1所述的终端应用程序的探活方法,其特征在于,所述基于目标频率对所述服务器进行探活,包括:
基于所述目标频率确定当前时刻满足所述终端应用程序对所述服务器进行探活的情况下,发送心跳包至所述服务器;
在发送所述心跳包后,在预设时间未接收到所述服务器基于所述心跳包返回的响应,且本次探活发送心跳包的次数低于目标次数的情况下,再重发心跳包至所述服务器。
3.根据权利要求1所述的终端应用程序的探活方法,其特征在于,所述在所述网络状态发生变化的情况下,对所述服务器进行探活,包括:
在所述网络状态发生变化的情况下,发送心跳包至所述服务器;
在发送所述心跳包后,在预设时间未接收到所述服务器基于所述心跳包返回的响应,且本次探活发送心跳包的次数低于目标次数的情况下,再重发心跳包至所述服务器。
4.根据权利要求1所述的终端应用程序的探活方法,其特征在于,所述第一探活结果和所述第二探活结果均包括:在一次探活中,在发送心跳包后的预设时间未接收到所述服务器返回响应的次数;其中,所述响应为所述服务器基于所述终端应用程序发送的心跳包作出的;
所述基于所述第一探活结果或者所述第二探活结果,确定所述网络连接不可用,包括:
在一次探活中,在所述预设时间未接收到所述服务器返回的响应的次数达到目标次数的情况下,则确定所述网络连接不可用。
5.根据权利要求1所述的终端应用程序的探活方法,其特征在于,还包括:
在基于所述第二探活结果,确定所述网络连接可用的情况下,延迟下一次定时探活的时间。
6.根据权利要求1-5任一项所述的终端应用程序的探活方法,其特征在于,所述网络连接为消息队列遥测传输协议网络连接。
7.一种终端应用程序的探活装置,其特征在于,包括:
第一探活模块,用于将终端应用程序与服务器进行网络连接,基于目标频率对所述服务器进行探活,并获取第一探活结果;
第二探活模块,用于监听所述终端应用程序与所述服务器之间的网络状态,在所述网络状态发生变化的情况下,对所述服务器进行探活,并获取第二探活结果;
网络重启模块,用于在基于所述第一探活结果或者所述第二探活结果,确定所述网络连接不可用的情况下,重启所述终端应用程序与所述服务器的网络连接。
8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述终端应用程序的探活方法的步骤。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述终端应用程序的探活方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述终端应用程序的探活方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111151628.8A CN113965495A (zh) | 2021-09-29 | 2021-09-29 | 终端应用程序的探活方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111151628.8A CN113965495A (zh) | 2021-09-29 | 2021-09-29 | 终端应用程序的探活方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113965495A true CN113965495A (zh) | 2022-01-21 |
Family
ID=79463186
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111151628.8A Pending CN113965495A (zh) | 2021-09-29 | 2021-09-29 | 终端应用程序的探活方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113965495A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114826979A (zh) * | 2022-04-07 | 2022-07-29 | 中国联合网络通信集团有限公司 | 网络链路质量获取方法、装置、系统、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104991850A (zh) * | 2015-06-27 | 2015-10-21 | 广州华多网络科技有限公司 | 一种应用程序的心跳包控制方法和装置 |
US10056159B1 (en) * | 2018-01-31 | 2018-08-21 | MedPather, Inc. | System and method for medical resource utilization management |
CN109587258A (zh) * | 2018-12-14 | 2019-04-05 | 北京金山云网络技术有限公司 | 一种服务探活方法及装置 |
CN110474975A (zh) * | 2019-08-08 | 2019-11-19 | 北京云中融信网络科技有限公司 | 应用程序的心跳处理方法、装置、电子设备及存储介质 |
-
2021
- 2021-09-29 CN CN202111151628.8A patent/CN113965495A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104991850A (zh) * | 2015-06-27 | 2015-10-21 | 广州华多网络科技有限公司 | 一种应用程序的心跳包控制方法和装置 |
US10056159B1 (en) * | 2018-01-31 | 2018-08-21 | MedPather, Inc. | System and method for medical resource utilization management |
CN109587258A (zh) * | 2018-12-14 | 2019-04-05 | 北京金山云网络技术有限公司 | 一种服务探活方法及装置 |
CN110474975A (zh) * | 2019-08-08 | 2019-11-19 | 北京云中融信网络科技有限公司 | 应用程序的心跳处理方法、装置、电子设备及存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114826979A (zh) * | 2022-04-07 | 2022-07-29 | 中国联合网络通信集团有限公司 | 网络链路质量获取方法、装置、系统、设备及存储介质 |
CN114826979B (zh) * | 2022-04-07 | 2023-08-15 | 中国联合网络通信集团有限公司 | 网络链路质量获取方法、装置、系统、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8244887B2 (en) | HTTP push to simulate server-initiated sessions | |
CN113472606B (zh) | 一种心跳超时检测方法、服务器及电子设备 | |
CN105635248B (zh) | 一种tcp连接资源的释放方法及系统 | |
EP3331197B1 (en) | A method and system for monitoring a connection status of a device | |
CN105516640B (zh) | 一种视频通讯会话异常的检测方法及系统 | |
JP7234402B2 (ja) | 車両通信のためのセカンダリリンクモニタリング方法、車両通信端末、電子機器及びコンピュータプログラム | |
WO2009071386A1 (en) | Mobile access to internet-based application with reduced polling | |
WO2021237433A1 (zh) | 消息推送方法、装置、电子设备及计算机可读介质 | |
CN107567107A (zh) | 一种传输数据的方法及装置 | |
CN113746910A (zh) | H5页面重连服务器的方法、终端及可读存储介质 | |
US11528345B2 (en) | Data transmission method and system, and apparatus | |
CN113965495A (zh) | 终端应用程序的探活方法、装置、电子设备及存储介质 | |
CN107317731A (zh) | 一种客户端与服务器连接状态的检测方法 | |
CN112839106A (zh) | 通信方法及装置、电子设备及介质 | |
CN110597631B (zh) | 资源管理方法、监控服务器、代理服务器以及存储介质 | |
CN111064639A (zh) | 一种服务状态公告方法、装置、设备及存储介质 | |
CN114143904B (zh) | 一种基于5g融合网络分流器的cpe管理方法 | |
CN104104555B (zh) | 监控方法、系统、控制端及执行端 | |
CN114125021B (zh) | 一种基于Netty消息驱动的终端信息发布系统 | |
EP3314970B1 (en) | Method and apparatus for managing uplink traffic from a client device in a communication network | |
CN111049741B (zh) | 提高通信可靠性的方法、通信系统及终端设备 | |
CN112965831A (zh) | 抑制数据反复平滑的方法及装置 | |
KR20120128031A (ko) | 망 부하 감소를 위한 푸시 서비스 제공 시스템 및 방법 | |
CN111314465B (zh) | 弱网环境通讯方法、装置和电子设备 | |
CN115580555B (zh) | 分布式任务取消方法、装置、系统和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20220121 |
|
RJ01 | Rejection of invention patent application after publication |