终端设备及其心跳包发送间隔的探测方法、存储介质与流程

文档序号:29464158发布日期:2022-04-02 02:44阅读:308来源:国知局
终端设备及其心跳包发送间隔的探测方法、存储介质与流程

1.本技术涉及无线通信技术领域,特别涉及一种终端设备及其心跳包发送间隔的探测方法、存储介质。


背景技术:

2.物联网终端设备与服务器服务器之间一般通过建立基于tcp(transmission control protocol,传输控制协议)的长连接的通信链路进行通信,当服务器服务器与物联网终端设备长时间没有数据通讯时,此长连接会断开,此时会影响终端设备收发数据的及时性,为了确保服务器服务器与终端设备之间数据通讯的及时性,在双方没有数据通讯时,终端设备需要定时向服务器服务器发送协议包数据,即心跳包,来避免长连接断开。而对于每种类型的终端设备和互联网的心跳包发送间隔是不同的,且这个发送间隔时间是不可预见的,若将发送间隔设置过长,则有可能容易使得终端设备与服务器服务器之间断开连接,若将发送间隔设置果断,则对网络资源占用较高且增加了终端设备的耗电量,因此,对于心跳包的发送间隔时间的设定成为了难题。


技术实现要素:

3.本技术旨在至少解决现有技术中存在的技术问题之一。为此,本技术提出一种终端设备及其心跳包发送间隔的探测方法、存储介质,能够探测出终端设备与服务器之间的心跳包最小发送时间间隔,提高通信连接的稳定性且一定程度减少对网络资源的占用和电池耗电量。
4.第一方面,本技术还提供了一种终端设备的心跳包发送间隔的探测方法,包括:
5.步骤s110:预设初始心跳包的发送时间间隔;
6.步骤s120:当在所述发送时间间隔内未与服务器发生数据交互,向所述服务器发送心跳包;
7.步骤s130:根据所述心跳包发送到所述服务器的超时状况,调整并更新所述发送时间间隔;
8.步骤s140:根据预设的探测次数,重复执行所述步骤s120,取最后一次所述超时状况为未超时的所述发送时间间隔作为最终的所述发送时间间隔。
9.根据本技术第一方面实施例的终端设备的心跳包发送间隔的探测方法,至少具有如下有益效果:先预设初始心跳报的发送时间间隔,当在时间间隔内未与服务器发生数据交互,为了避免终端设备和服务器之间断开连接,终端设备向服务器发送心跳包,获取到心跳包发送到服务器的超时状况,其中超时状况包括已超时和未超时,根据超时状况对发送时间间隔进行调节,经过将步骤s120重复预设的探测次数,将最后一次超时状况为未超时的发送时间间隔作为该终端设备与服务器之间通讯的心跳包发送时间间隔,通过上述的探测方法,能够探测出终端设备与服务器之间的心跳包最小发送时间间隔,提高通信连接的稳定性且一定程度减少对网络资源的占用和电池耗电量。
10.根据本技术第一方面的一些实施例,所述步骤s130,包括:当所述心跳包发送到所述服务器未超出预设的超时时间,将所述发送时间间隔按照预设的第一时间间隔上调,并更新所述发送时间间隔。
11.根据本技术第一方面的一些实施例,所述步骤s130,包括:当所述心跳包发送到所述服务器超出预设的超时时间,将所述发送时间间隔按照预设的第一时间间隔下调,并更新所述发送时间间隔。
12.根据本技术第一方面的一些实施例,还包括:当所述心跳包发送失败时,重新与所述服务器连接,并重新执行所述步骤s110。
13.根据本技术第一方面的一些实施例,还包括:当在所述发送时间间隔内与所述服务器发生数据交互,则在数据交互完成后,重新计算以判断在所述发送时间间隔内是否发生数据交互。
14.根据本技术第一方面的一些实施例,还包括:当将所述发送时间间隔上调后,所述心跳包发送失败的次数超过预设的第一次数阈值,将所述发送时间间隔调整并更新至初始心跳包的发送时间间隔。
15.根据本技术第一方面的一些实施例,还包括:检测wifi连接状态和充电状态;当所述wifi连接状态为已连接且充电状态为正在充电,停止对所述心跳包的所述发送时间间隔探测,并始终采用预设初始的所述发送时间间隔向所述服务器发送心跳包。
16.根据本技术第一方面的一些实施例,所述步骤s110,包括:获取来自服务器的初始心跳时间值;将所述初始心跳时间值作为初始心跳包的发送时间间隔。
17.第二方面,本技术还提供了一种终端设备,包括:至少一个存储器;至少一个处理器;至少一个程序;所述程序被存储在所述存储器中,所述处理器执行至少一个所述程序以实现如第一方面任一项实施例所述的终端设备的心跳包发送间隔的探测方法。
18.根据本技术第二方面实施例的终端设备,至少具有如下有益效果:先预设初始心跳报的发送时间间隔,当在时间间隔内未与服务器发生数据交互,为了避免终端设备和服务器之间断开连接,终端设备向服务器发送心跳包,获取到心跳包发送到服务器的超时状况,其中超时状况包括已超时和未超时,根据超时状况对发送时间间隔进行调节,经过将步骤s120重复预设的探测次数,将最后一次超时状况为未超时的发送时间间隔作为该终端设备与服务器之间通讯的心跳包发送时间间隔,通过上述的探测方法,能够探测出终端设备与服务器之间的心跳包最小发送时间间隔,提高通信连接的稳定性且一定程度减少对网络资源的占用和电池耗电量。
19.第三方面,本技术还提供了一种通信系统,包括:服务器和如第二方面实施例所述的终端设备,所述服务器和所述终端设备通过tcp协议通讯连接。
20.根据本技术第三方面实施例的通信系统,至少具有如下有益效果:先预设初始心跳报的发送时间间隔,当在时间间隔内未与服务器发生数据交互,为了避免终端设备和服务器之间断开连接,终端设备向服务器发送心跳包,获取到心跳包发送到服务器的超时状况,其中超时状况包括已超时和未超时,根据超时状况对发送时间间隔进行调节,经过将步骤s120重复预设的探测次数,将最后一次超时状况为未超时的发送时间间隔作为该终端设备与服务器之间通讯的心跳包发送时间间隔,通过上述的探测方法,能够探测出终端设备与服务器之间的心跳包最小发送时间间隔,提高通信连接的稳定性且一定程度减少对网络
资源的占用和电池耗电量。
21.第四方面,本技术还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行信号,所述计算机可执行信号用于执行至少一个所述程序以实现如第一方面任一项实施例所述的终端设备的心跳包发送间隔的探测方法。
22.本技术的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本技术的实践了解到。
附图说明
23.本技术的附加方面和优点结合下面附图对实施例的描述中将变得明显和容易理解,其中:
24.图1为本技术的一些实施例的终端设备的心跳包发送间隔的探测方法的流程图;
25.图2为本技术的另一实施例的终端设备的心跳包发送间隔的探测方法的流程图;
26.图3为本技术的另一实施例的终端设备的心跳包发送间隔的探测方法的流程图;
27.图4为本技术的一些实施例的终端设备的示意图。
具体实施方式
28.下面详细描述本技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本技术,而不能理解为对本技术的限制。
29.在本技术的描述中,需要理解的是,涉及到方位描述,例如上、下、前、后、左、右等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本技术和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本技术的限制。
30.在本技术的描述中,如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。
31.本技术的描述中,除非另有明确的限定,设置、安装、连接等词语应做广义理解,所属技术领域技术人员可以结合技术方案的具体内容合理确定上述词语在本技术中的具体含义。
32.第一方面,本技术提供了一种终端设备的心跳包发送间隔的探测方法,本技术为了找出合适心跳包的发送时间间隔,该发送时间间隔略小于终端设备与服务器之间的最大nat(network address translation,网络地址转换)超时时间,探测方法包括但不仅限于以下步骤:
33.步骤s110:预设初始心跳包的发送时间间隔;
34.步骤s120:当在发送时间间隔内未与服务器发生数据交互,向服务器发送心跳包;
35.步骤s130:根据心跳包发送到服务器的超时状况,调整并更新发送时间间隔;
36.步骤s140:根据预设的探测次数,重复执行步骤s120,取最后一次超时状况为未超时的发送时间间隔作为最终的发送时间间隔。
37.先预设初始心跳报的发送时间间隔,当在时间间隔内未与服务器发生数据交互,
为了避免终端设备和服务器之间断开连接,终端设备向服务器发送心跳包,获取到心跳包发送到服务器的超时状况,其中超时状况包括已超时和未超时,根据超时状况对发送时间间隔进行调节,经过将步骤s120重复预设的探测次数,将最后一次超时状况为未超时的发送时间间隔作为该终端设备与服务器之间通讯的心跳包发送时间间隔,通过上述的探测方法,能够探测出终端设备与服务器之间的心跳包最小发送时间间隔,提高通信连接的稳定性且一定程度减少对网络资源的占用和电池耗电量。
38.可以理解的是,其中,步骤s130还可以包括但不限于以下步骤:
39.当心跳包发送到服务器未超出预设的超时时间,将发送时间间隔按照预设的第一时间间隔上调,并更新发送时间间隔。
40.当心跳包按照发送时间间隔发送到服务器,而服务器接收到心跳包的时间没有超出超时时间,则说明在心跳包发送时,服务器还未释放对终端设备的连接,则将发送时间间隔按照第一时间间隔上调,即降低心跳包的发送频率,重新对心跳包的发送时间间隔进行探测,以进一步探测到合适的发送时间间隔,从而一定程度减少对网络资源的占用和电池耗电量。
41.可以理解的是,其中,步骤s130还可以包括但不限于以下步骤:
42.当心跳包发送到服务器超出预设的超时时间,将发送时间间隔按照预设的第一时间间隔下调,并更新发送时间间隔。
43.当心跳包按照发送时间间隔发送到服务器,而服务器接收到心跳包的时间超出超时时间,则说明在心跳包发送时,则说明服务器已经释放对终端设备的连接,从而达不到心跳保活的目的,会导致终端设备接收到信息的时间延迟,因此,将发送时间间隔按照第一时间间隔下调,即提高心跳包的发送频率,以免服务器断开与终端设备的连接,提高通信的稳定性。
44.可以理解的是,本技术提供的终端设备的心跳包发送间隔的探测方法,还包括但不限于以下步骤:
45.当心跳包发送失败时,重新与服务器连接,并重新执行步骤s110。
46.在探测的过程中,终端设备与服务器之间可能会发生意外中断,此时需要中断设备与服务器之间重新建立以tcp协议的通信连接关系,通过在终端设备向服务器发送心跳包的过程仲,如果心跳包发送失败,则证明终端设备与服务器之间的长连接已经断开,此时需要重新初始化长连接,探测的整个流程需要重新开始,即从步骤s110重新开始进行探测。
47.可以理解的是,本技术提供的终端设备的心跳包发送间隔的探测方法,还包括但不限于以下步骤:
48.当在发送时间间隔内与服务器发生数据交互,则在数据交互完成后,重新计算以判断在发送时间间隔内是否发生数据交互。
49.在心跳包的发送时间间隔内如过已经发生了数据交互,则证明此时终端设备与服务器还保持连接关系,即服务器还未释放对终端设备的连接,在两者数据交互完成后,需要重新计时,判断在下一个发送时间间隔内是否发送数据交互,若未发生数据交互,则在经过一段发送时间间隔后,向服务器发送心跳包,以对发送时间间隔进行探测。
50.可以理解的是,本技术提供的终端设备的心跳包发送间隔的探测方法,还包括但不限于以下步骤:
51.当将发送时间间隔上调后,心跳包发送失败的次数超过预设的第一次数阈值,将发送时间间隔调整并更新至初始心跳包的发送时间间隔。
52.发送时间间隔上调后,心跳包连续出现发送失败的情况,则说明可能在探测过程中出现了故障,重新将发送时间间隔设为初始心跳包的发送时间间隔,重新进行探测,以确认是否终端设备与服务器完全连接终止,从而需要重新建立以tcp协议的通信连接。
53.参照图2,可以理解的是,本技术提供的终端设备的心跳包发送间隔的探测方法,还包括但不限于以下步骤:
54.步骤s210:检测wifi连接状态和充电状态;
55.步骤s220:当wifi连接状态为已连接且充电状态为正在充电,停止对心跳包的发送时间间隔探测,并始终采用预设初始的发送时间间隔向服务器发送心跳包。
56.当终端设备连接了wifi同时也在充电状态,则不需要考虑网络资源占用和终端设备电池消耗的问题,始终以初始预设的发送时间间隔,将心跳包发送至服务器,以进行心跳保活,因此停止对心跳包的发送时间间隔探测。
57.参照图3,可以理解的是,在步骤s110中,包括但不仅限于以下步骤:
58.步骤s310:获取来自服务器的初始心跳时间值;
59.步骤s320:将初始心跳时间值作为初始心跳包的发送时间间隔。
60.初始心跳包的发送时间间隔从服务器中获取,该初始心跳时间值可以是工作人员根据经验设定的值,经过预设的探测次数,从而找寻到最合适的发送时间间隔,该探测方法并不局限于特定的终端设备。
61.下面以一个具体的实施例对第一方面提出的终端设备的心跳包发送间隔的探测方法作进一步详细的阐述:
62.本技术提供了一种终端设备的心跳包发送间隔的探测方法,通过该探测方法,采用不确定的发送时间间隔去发送心跳包,目的是为了得到最大nat超时时间稳定心跳包的发送时间间隔,当探测心跳探测到了nat超时时间那么就会选定比这个时间点稍微小一点的时间来作为稳定的发送时间间隔,以后就一直以这个稳定的发送时间间隔向服务器发送心跳包。该探测方法的程序在第一次启动的时,将终端设备与服务器建立以tcp协议的方式连接,服务器会向终端设备下发一个初始心跳时间值,在本实施例中,初始心跳值设为300秒,300秒表示该终端设备在待机状态下每隔300秒需要向服务器发送一次心跳包数据以来维持长连接。终端设备初始化心跳时间后会设置下一次心跳包发送的时间点,即设置心跳闹钟。在心跳闹钟到达之前,如果终端设备与服务器之间有数据交互,则取消上一次心跳闹钟,并重新计算下一次心跳闹钟,反之,如果这段终端设备与服务器之间没有数据交互,到达心跳闹钟时,设备会向服务器发送心跳包,如果心跳包发送失败,则证明设备与服务器之间的长连接已经断开,此时需要重新初始化长连接,整个流程重新开始;如果心跳包发送成功,此时探测心跳系统开始介入:
63.①
记录心跳包发送超时计时,如果检测心跳超时,则下调心跳包的发送时间间隔,初始值为300秒,预设的第一时间间隔为60秒,即步长为60秒,则下调为300-60=240秒。
64.②
如果检测心跳包发送没有超时,则上调心跳时间值,初始值为300秒,步长为60秒,则上调为300+60=360秒,此后则以360心跳值进行心跳闹钟设定,如果以此值连续n次(n的值由开发者自定义)心跳闹钟都成功则认为已经达到了心跳包的发送时间间隔,则设
置此值为稳定心跳包的发送时间间隔,之后可以一直用此值来进行心跳保活。
65.③
上调心跳包的发送时间间隔之后,如果在n次心跳闹钟之内出现过失败的心跳保活,则失败次数加1,当失败次数达到m次(m的值由开发者自定义),则下一次心跳值重置为初始的300秒,重新进行心跳值探测。
66.④
智能终端设备当前如果连上wifi并且是在充电状态,则不进行心跳包的发送时间间隔探测流程,始终以初始心跳值进行心跳保活。
67.第二方面,本技术还提供了一种终端设备,包括:至少一个存储器;至少一个处理器;至少一个程序;程序被存储在存储器中,处理器执行至少一个程序以实现如第一方面任一项实施例的终端设备的心跳包发送间隔的探测方法。
68.先预设初始心跳报的发送时间间隔,当在时间间隔内未与服务器发生数据交互,为了避免终端设备和服务器之间断开连接,终端设备向服务器发送心跳包,获取到心跳包发送到服务器的超时状况,其中超时状况包括已超时和未超时,根据超时状况对发送时间间隔进行调节,经过将步骤s120重复预设的探测次数,将最后一次超时状况为未超时的发送时间间隔作为该终端设备与服务器之间通讯的心跳包发送时间间隔,通过上述的探测方法,能够探测出终端设备与服务器之间的心跳包最小发送时间间隔,提高通信连接的稳定性且一定程度减少对网络资源的占用和电池耗电量。
69.参照图4,处理器和存储器可以通过总线或其他方式连接,通过总线连接为例。
70.存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态性计算机可执行程序以及信号,如本技术实施例中的处理模块对应的程序指令/信号。处理器通过运行存储在存储器中的非暂态软件程序、指令以及信号,从而执行各种功能应用以及数据处理,即实现上述方法实施例的终端设备的心跳包发送间隔的探测方法。
71.存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储上述终端设备的心跳包发送间隔的探测方法的相关数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理模块。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
72.一个或者多个信号存储在存储器中,当被一个或者多个处理器执行时,执行上述任意方法实施例中的终端设备的心跳包发送间隔的探测方法。例如,执行以上描述的图1中的方法步骤s110至s140、图2中的方法步骤s210至s220、图3中的方法步骤s310至s320。
73.第三方面,本技术还提供了一种通信系统,包括:服务器和如第二方面实施例所述的终端设备,所述服务器和所述终端设备通过tcp协议通讯连接。
74.根据本技术第二方面实施例的终端设备,至少具有如下有益效果:先预设初始心跳报的发送时间间隔,当在时间间隔内未与服务器发生数据交互,为了避免终端设备和服务器之间断开连接,终端设备向服务器发送心跳包,获取到心跳包发送到服务器的超时状况,其中超时状况包括已超时和未超时,根据超时状况对发送时间间隔进行调节,经过将步骤s120重复预设的探测次数,将最后一次超时状况为未超时的发送时间间隔作为该终端设备与服务器之间通讯的心跳包发送时间间隔,通过上述的探测方法,能够探测出终端设备
与服务器之间的心跳包最小发送时间间隔,提高通信连接的稳定性且一定程度减少对网络资源的占用和电池耗电量。
75.第四方面,本技术实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,可使得上述一个或多个处理器执行上述方法实施例中的终端设备的心跳包发送间隔的探测方法。例如,执行以上描述的图1中的方法步骤s110至s140、图2中的方法步骤s210至s220、图3中的方法步骤s310至s320。
76.以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
77.通过以上的实施方式的描述,本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读信号、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读信号、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
78.上面结合附图对本技术实施例作了详细说明,但是本技术不限于上述实施例,在所属技术领域普通技术人员所具备的知识范围内,还可以在不脱离本技术宗旨的前提下,作出各种变化。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1