CN103139303B - 一种用于保持连接的心跳方法、装置及系统 - Google Patents
一种用于保持连接的心跳方法、装置及系统 Download PDFInfo
- Publication number
- CN103139303B CN103139303B CN201310049291.9A CN201310049291A CN103139303B CN 103139303 B CN103139303 B CN 103139303B CN 201310049291 A CN201310049291 A CN 201310049291A CN 103139303 B CN103139303 B CN 103139303B
- Authority
- CN
- China
- Prior art keywords
- heartbeat
- cycle
- temporary
- client
- server
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 80
- 230000010247 heart contraction Effects 0.000 title abstract 3
- 238000001514 detection method Methods 0.000 claims abstract description 129
- 230000001960 triggered effect Effects 0.000 claims description 9
- 230000000977 initiatory effect Effects 0.000 claims description 7
- 239000000284 extract Substances 0.000 claims description 6
- 230000001413 cellular effect Effects 0.000 claims description 4
- 230000009467 reduction Effects 0.000 claims description 4
- 238000010295 mobile communication Methods 0.000 claims description 2
- 230000007246 mechanism Effects 0.000 abstract description 8
- 230000005540 biological transmission Effects 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 15
- 238000004590 computer program Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000012360 testing method Methods 0.000 description 7
- 239000000203 mixture Substances 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000021615 conjugation Effects 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本发明的实施方式提供了一种用于保持连接的心跳方法。该方法例如可以包括:判断心跳检测启动条件是否满足,如果满足,执行心跳检测,获得用于保持连接的心跳周期,向服务器发送包含该心跳周期的消息,接收服务器根据该消息调整心跳周期后发送的心跳包以保持与服务器的连接。通过在客户端心跳检测启动条件满足时,执行心跳检测,获得用于保持连接的心跳周期,再向服务器发送包含该心跳周期的消息,使服务器根据该消息调整心跳周期,以动态调整心跳周期的心跳机制向客户端发送心跳包从而实现保持长连接的目的。此外,本发明的实施方式提供了一种用于保持连接的心跳装置及系统。
Description
技术领域
本发明的实施方式涉及心跳连接领域,更具体地,本发明的实施方式涉及一种用于保持连接的心跳方法、装置及系统。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述可包括可以探究的概念,但不一定是之前已经想到或者已经探究的概念。因此,除非在此指出,否则在本部分中描述的内容对于本申请的说明书和权利要求书而言不是现有技术,并且并不因为包括在本部分中就承认是现有技术。
为了保持客户端与服务器的TCP长连接,客户端和服务器会互相定期发送数据包,通常叫心跳包。通过这些心跳包,用于连接外网和内网的NAT主机能够判断该长连接有不间断的数据往来,进而NAT主机会保持该长连接,如果定期没有心跳包,NAT主机则认为该长连接会浪费网络资源,将断开客户端与服务器的连接。
然而,这样双向发送心跳包的心跳机制会大量消耗客户端设备的电量,例如手机等移动设备,同时也浪费了客户端的大量网络流量。
发明内容
为此,非常需要一种改进的用于保持连接的心跳方法,以实现在保持长连接的同时实现节省客户端设备的电量、网络流量的目的。
在本上下文中,本发明的实施方式期望提供一种用于保持连接的心跳方法、装置及系统。
在本发明实施方式的第一方面中,提供了一种用于保持连接的心跳方法,可以应用于客户端,例如,可以包括:判断心跳检测启动条件是否满足;如果满足,执行心跳检测,获得用于保持连接的心跳周期;向服务器发送包含该心跳周期的消息,接收服务器根据该消息调整心跳周期后发送的心跳包以保持与服务器的连接。
在本发明实施方式的第二方面中,提供了一种用于保持连接的心跳装置,可以实施于客户端设备,例如,可以包括:心跳检测启动单元:可以配置用于判断心跳检测启动条件是否满足,如果满足,触发心跳检测执行单元执行;心跳检测执行单元:可以配置用于执行心跳检测,获得用于保持连接的心跳周期;心跳上报单元:可以配置用于向服务器发送该心跳周期,接收服务器根据该消息调整心跳周期后发送的心跳包以保持与服务器的连接。
在本发明实施方式的第三方面中,提供了一种用于保持连接的心跳方法,可以应用于服务器端,例如,可以包括:接收客户端执行心跳检测后发送的包含心跳周期的消息;根据该消息,获得用于保持连接的心跳周期;根据该消息包含的心跳周期,调整心跳周期;以调整后的周期向客户端发送心跳包以保持与客户端的连接。
在本发明实施方式的第四方面中,提供了一种用于保持连接的心跳装置,可以实施于服务器端设备,例如,可以包括:心跳接收单元:配置用于接收客户端执行心跳检测后发送的包含心跳周期的消息;心跳调整单元:配置用于根据该消息,获得用于保持连接的心跳周期,根据该消息包含的心跳周期,调整心跳周期,以调整后的周期向客户端发送心跳包以保持与客户端的连接。
通过对上述技术方案的描述,容易得知,本发明具有如下有益效果:
根据本发明实施方式的用于保持连接的心跳方法、装置及系统,可以在客户端心跳检测启动条件满足时,执行心跳检测,其中心跳检测启动条件可以根据各种决定网络质量发生变化的指标进行设置,例如,可以将连接断开、有连接请求、网络数据传输速度低于阈值、再或者到达定期检测时间等作为启动条件,进而,在网络质量变化时,可以自动启动心跳检测,获得用于保持连接的心跳周期,再向服务器发送包含该心跳周期的消息,使服务器根据该消息调整心跳周期,实现动态调整心跳周期的心跳机制,使服务器发送心跳包的心跳周期更符合当前网络环境质量,实现保持长连接的目的,同时由于通过客户端接收服务器的心跳包以保持长连接,客户端可以不用发送心跳包,很大程度上节省了客户端设备的电量、网络流量。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
图1示意性地示出了适于实现本发明实施方式的示例性计算系统100的框图;
图2示意性地示出了根据本发明一实施例的应用于客户端的一种用于保持连接的心跳方法的流程图;
图3示意性地示出了根据本发明又一实施例的应用于客户端的执行心跳检测的流程图;
图4示意性地示出了根据本发明再一实施例的实施于客户端设备的一种用于保持连接的心跳装置的组成图;
图5示意性地示出了根据本发明另一实施例的应用于服务器端的一种用于保持连接的心跳方法的流程图;
图6示意性地示出了根据本发明再又一实施例的实施于服务器端设备的一种用于保持连接的心跳装置的组成图;
图7示意性地示出了根据本发明再又一实施例的一种用于保持连接的心跳系统的组成图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
图1示出了适于实现本发明实施方式的示例性计算系统100的框图。如图1所示,计算系统100可以包括:中央处理单元(CPU)101、随机存取存储器(RAM)102、只读存储器(ROM)103、系统总线104、硬盘控制器105、键盘控制器106、串行接口控制器107、并行接口控制器108、显示控制器109、硬盘110、键盘111、串行外部设备112、并行外部设备113和显示器114。这些设备中,与系统总线104耦合的有CPU101、RAM102、ROM103、硬盘控制器105、键盘控制器106、串行控制器107、并行控制器108和显示控制器109。硬盘110与硬盘控制器105耦合,键盘111与键盘控制器106耦合,串行外部设备112与串行接口控制器107耦合,并行外部设备113与并行接口控制器108耦合,以及显示器114与显示控制器109耦合。应当理解,图1所述的结构框图仅仅是为了示例的目的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况增加或减少某些设备。
本领域技术技术人员知道,本发明的实施方式可以实现为一种系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举示例)例如可以包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络(包括局域网(LAN)或广域网(WAN))连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照本发明实施例的方法的流程图和设备(或系统)的框图描述本发明的实施方式。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置的产品。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
根据本发明的实施方式,提出了一种用于保持连接的心跳方法、装置及系统。
在本文中,需要理解的是,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
发明概述
本发明人发现,现有技术中为了保持客户端与服务器的TCP长连接,客户端和服务器会互相定期发送心跳包,因此导致大量消耗客户端的电量,同时也浪费客户端的网络流量,而且,本发明人又发现能够保持长连接的心跳周期可以在客户端检测到,原因在于,只要客户端能够在心跳周期内收到服务器以该心跳周期发送的心跳包,就能够保持长连接,因此,可以在客户端对心跳进行检测,获得可用于保持连接的心跳周期,再向服务器发送包含该心跳周期的消息以使服务器根据该消息调整心跳周期,从而可以放弃现有技术中双向定期发送心跳包的心跳机制,采取服务器根据客户端检测的心跳周期动态调整心跳周期的心跳机制向客户端发送心跳包从而实现保持长连接的目的,同时由于通过客户端接收服务器的心跳包保持长连接,客户端可以不用发心跳包,很大程度上节省了客户端设备的电量、网络流量。
在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。
应用场景总览
本发明的心跳方法可以应用到例如无线移动网络下的移动终端,用于移动终端与服务器保持TCP长连接。放弃现有技术双向定期发送心跳包的心跳机制,采取服务器根据客户端检测动态调整心跳周期的心跳机制向客户端发送心跳包从而实现保持长连接的目的。
示例性方法
下面结合上述应用场景,参考图2来描述根据本发明示例性实施方式的用于保持连接的心跳方法。需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。
参见图2,为本发明提供的一种用于保持连接的心跳方法流程图,如图所示,该方法可以包括:
S201、判断心跳检测启动条件是否满足;
S202、如果满足,执行心跳检测,获得用于保持连接的心跳周期;
S203、向服务器发送包含该心跳周期的消息,接收服务器根据该消息调整心跳周期后发送的心跳包以保持与服务器的连接。
上述实施例方法可以应用于客户端,在客户端心跳检测启动条件满足时,执行心跳检测,其中心跳检测启动条件可以根据各种决定网络质量发生变化的指标进行设置,例如,可以将连接断开、有连接请求、网络数据传输速度低于阈值、再或者到达定期检测时间等作为启动条件,进而,在网络质量变化时,可以自动启动心跳检测,获得用于保持连接的心跳周期,再向服务器发送包含该心跳周期的消息,使服务器根据该消息调整心跳周期,实现服务器动态调整心跳周期的心跳机制,使服务器发送心跳包的心跳周期更符合当前网络环境质量,实现保持长连接的目的。
其中步骤S201判断心跳检测启动条件是否满足的具体实现例如可以包括:
判断连接是否已断开或者是否有连接请求;
如果是,向服务器发送心跳检测请求;
接收服务器针对该请求的反馈;
如果反馈为允许检测,则心跳检测启动条件满足。
或者,
判断是否到达预设的心跳检测启动时间;
如果是,则心跳检测启动条件满足。
再或者,
可以判断当前网络数据传输速度是否低于阈值;
如果是,则心跳检测启动条件满足。
需要说明的是,上述判断心跳检测启动条件是否满足的方法仅为示意性说明,在本发明精神的启示之下的其他判断心跳检测启动条件的方法也应落入本发明的保护范围之内。
其中步骤S202执行心跳检测的具体实现可以根据实际需要,以获得用于保持连接的心跳周期为目的,制定符合客户端网络环境的心跳检测方法,在本发明中并不进行限制,为了使本发明更加易于理解和实施,对该步骤S202的具体实现以下述实施方式为例进行说明:
参考只要客户端能够在心跳周期内接收到服务器以该心跳周期发送的心跳包,就能够保持长连接的原理,本发明提出选取临时心跳周期,向服务器发送包含该心跳周期的消息,使服务器以该临时心跳周期发送心跳包的测试方法,以获得可以用于保持连接的心跳周期,其具体实现例如可以包括:
A.选取临时心跳周期;
B.向服务器发送所述临时心跳周期,使服务器以该临时心跳周期发送心跳包;
C.从向服务器发送该临时心跳周期时,开始计时;
D.根据计时时长在小于等于该临时心跳周期的时间内,服务器的心跳包的到达情况,判断是否能够获得用于保持连接的心跳周期;
E.如果能够获得,根据预设算法,对心跳周期进行计算,获得用于保持连接的心跳周期;
F.如果不能够获得,重新选取临时心跳周期,重新进入步骤B。
为了提高步骤A选取临时心跳周期的效率,可以对选取临时心跳周期的范围进行限制,以精确选取的范围,例如:可以根据经验或者算法,预先指定心跳周期下限值和心跳周期上限值,步骤A选取临时心跳周期可以在[心跳周期下限值,心跳周期上限值]的范围内选取临时心跳周期。
其中步骤D具体可以将在该临时心跳周期内接收到服务器的心跳包作为判断能够获得用于保持连接的心跳周期的判断条件,相应地,步骤E中的预设算法可以为该用于保持连接的心跳周期等于该临时心跳周期,当然,还可以使用其他能够获得用于保持连接的心跳周期的判断条件,在本发明的启示之下,根据实施需要进行设置,对此本发明并不进行限制,不过,考虑到实际应用中,越大的心跳周期越能够使客户端设备节省电量及网络流量,因此上述步骤D判断是否能够获得用于保持连接的心跳周期的比较优选的方式是:
判断根据预设算法获得的心跳周期是否为[心跳周期下限值,心跳周期上限值]的范围中,符合保持连接条件的心跳周期的最大值,其中符合保持连接条件的心跳周期具体为能够在该心跳周期内接收到服务器的心跳包的心跳周期;
如果是,则能够获得用于保持连接的心跳周期;
如果否,则不能够获得用于保持连接的心跳周期。
其中步骤A和步骤F选取临时心跳周期的选取方法,根据该取最大值的需求,本发明提出以下两个可行的实施例,例如:
(实施例一)该实施例中选取临时心跳周期的方法在选取的临时心跳周期能够使客户端接收到服务器以该临时周期发送的心跳包时,继续选取更大值的心跳周期进行测试,在选取的临时心跳周期不能够使客户端接收到服务器以该临时周期发送的心跳包时,以逐渐收敛的方式选取临时心跳周期进行测试,进而可以更加接近准确地选取到在[心跳周期下限值,心跳周期上限值]的范围中,符合保持连接条件的心跳周期的最大值,其具体实现可以为:
步骤A可以选取心跳周期下限值乘以特定倍数的结果为临时心跳周期,其中该结果不得小于心跳周期下限值,不得超过心跳周期上限值;
其中如果计时时长在小于等于该临时心跳周期的时间内,接收到服务器的心跳包,且步骤F中重新选取的临时心跳周期未大于心跳周期上限值,则步骤F具体根据预设的增值规则,以增值的方式重新选取临时心跳周期;
其中如果计时时长在小于等于该临时心跳周期的时间内,未收到服务器的心跳包,且步骤F中重新选取的临时心跳周期未小于心跳周期下限值,则步骤F具体根据预设的减值规则,以减值的方式重新选取临时心跳周期。
需要说明的是,在该实施例中,步骤E中的预设算法可以根据计时时长在小于等于该临时心跳周期的时间内,服务器的心跳包的到达情况,以获得[心跳周期下限值,心跳周期上限值]的范围中符合保持连接条件的心跳周期的最大值为目标,进行该预设算法的设置。
下面,对步骤A到F可以实施的具体实现方式进行详细说明,如图3所示,其具体实现可以为:
S301、选取心跳周期下限值乘以特定倍数的结果为临时心跳周期,其中该结果不得小于心跳周期下限值,不得超过心跳周期上限值;
S302、向服务器发送所述临时心跳周期,使服务器以该临时心跳周期发送心跳包;
S303、从向服务器发送该临时心跳周期时,开始计时;
S304、如果计时时长在小于等于该临时心跳周期的时间内,未收到服务器的心跳包,则判断上一成功临时心跳周期是否等于心跳周期下限值;
S304.1、如果是,则能够获得用于保持连接的心跳周期,根据预设算法为用于保持连接的心跳周期等于该心跳周期下限值,获得用于保持连接的心跳周期;
该步骤判断出能够获得用于保持连接的心跳周期的原因是:根据计时时长在小于等于该临时心跳周期的时间内,未收到服务器的心跳包,且上一成功临时心跳周期等于心跳周期下限值,可以确定心跳周期下限值是符合保持连接条件的心跳周期的最大值。
S304.2、如果否,则将该临时心跳周期作为上一失败临时心跳周期,并判断该上一失败临时心跳周期与上一成功临时心跳周期的差值是否在预设精度阈值范围内;
S304.2A、如果是,则能够获得用于保持连接的心跳周期,根据预设算法为用于保持连接的心跳周期等于该上一成功临时心跳周期,获得用于保持连接的心跳周期;
该步骤判断出能够获得用于保持连接的心跳周期的原因是:根据上一失败临时心跳周期与上一成功临时心跳周期的差值在预设精度阈值范围内,可以确定该上一成功临时心跳周期已接近符合保持连接条件的心跳周期的最大值,其误差已在预设精度阈值范围内,可以将该上一成功临时心跳周期作为符合保持连接条件的心跳周期的最大值。
S304.2B、如果否,则不能够获得用于保持连接的心跳周期,且根据预设的减值规则为将上一失败临时心跳周期与上一成功临时心跳周期的平均值作为临时心跳周期,重现选取临时心跳周期,重新进入步骤S302;
S305、如果计时时长在小于等于该临时心跳周期的时间内,接收到服务器的心跳包,判断该临时心跳周期是否大于等于心跳周期上限值;
该步骤判断该临时心跳周期是否大于等于心跳周期上限值的原因是:由于选取的临时心跳周期不应超过心跳周期上限值,如果确实大于等于心跳周期上限值,则可以确定心跳周期上限值为符合保持连接条件的心跳周期的最大值,如果不是,则需要根据增值规则重新选取临时心跳周期的值,继续测试,详细参见下面的步骤:
S305.1、如果是,则能够获得用于保持连接的心跳周期,根据预设算法为用于保持连接的心跳周期等于该心跳周期上限值,获得用于保持连接的心跳周期;
S305.2、如果否,则将该临时心跳周期作为上一成功临时心跳周期,且判断是否存在上一失败临时心跳周期;
该步骤判断是否存在上一失败临时心跳周期的原因是:如果不存在上一失败临时心跳周期,说明符合保持连接条件的心跳周期的最大值至少小于心跳周期上限值,则增值规则应为选取该临时心跳周期与心跳周期上限值之间的值作为重新选取的临时心跳周期,如果存在上一失败临时心跳周期,说明符合保持连接条件的心跳周期的最大值至少小于上一失败临时心跳周期,则增值规则应为选取该临时心跳周期与上一失败临时心跳周期之间的值作为重新选取的临时心跳周期,详细参见下面的步骤:
S305.2A、如果不存在,则判断该临时心跳周期乘以特定倍数的结果是否大于心跳周期上限值;
S305.2A1、如果大于,则能够获得用于保持连接的心跳周期,根据预设算法为用于保持连接的心跳周期等于该临时心跳周期,获得用于保持连接的心跳周期;
S305.2A2、如果不大于,则不能够获得用于保持连接的心跳周期,且根据预设的增值规则为将该临时心跳周期乘以特定倍数的结果作为临时心跳周期,重现选取临时心跳周期,重新进入步骤S302;
S305.2B、如果存在,则不能够获得用于保持连接的心跳周期,且根据预设的增值规则为将上一失败临时心跳周期与上一成功临时心跳周期的平均值作为临时心跳周期,重新选取临时心跳周期,重新进入步骤S302。
(实施例二)该实施例中选取临时心跳周期的方法从选取心跳周期上限值作为临时心跳周期开始测试,在选取的临时心跳周期能够使客户端接收到服务器以该临时周期发送的心跳包时,则将该临时心跳周期作为用于保持连接的心跳周期,否则,继续选取比该临时心跳周期稍小的心跳周期进行测试,进而可以选取到在[心跳周期下限值,心跳周期上限值]的范围中,符合保持连接条件的心跳周期的最大值,该实施例虽然不如上述实施例一选取的临时心跳周期更加接近符合保持连接条件的心跳周期的最大值,但是由于该实现方式较为简单,其获得符合保持连接条件的心跳周期的速度较快,具体实现可以为:
其中步骤A所述选取临时心跳周期具体选取心跳周期上限值为临时心跳周期;
其中根据计时时长在小于等于该临时心跳周期的时间内,服务器的心跳包的到达情况,判断是否能够获得用于保持连接的心跳周期的具体实现为:
如果计时时长在小于等于该临时心跳周期的时间内,未收到服务器的心跳包,判断该临时心跳周期减去预设减少值的结果是否小于等于心跳周期下限值;
如果小于等于,则能够获得用于保持连接的心跳周期,且步骤E中的预设算法具体为该用于保持连接的心跳周期等于心跳周期下限值;
如果大于,则不能够获得用于保持连接的心跳周期,且步骤F中的重新选取临时心跳周期具体选取该临时心跳周期减去预设减少值的结果为临时心跳周期;
如果计时时长在小于等于该临时心跳周期的时间内,接收到服务器的心跳包,则能够获得用于保持连接的心跳周期,且步骤E中的预设算法具体为该用于保持连接的心跳周期等于该临时心跳周期。
需要说明的是,上述执行心跳检测,获得用于保持连接的心跳周期的实施例仅为本发明优选实施方式的示意性说明,本领域技术人员在本发明精神的启示之下得到的其他实施方式都应落入本发明的保护范围之内。
其中步骤S203接收服务器根据该消息调整心跳周期后发送的心跳包以保持与服务器的连接,具体可以接收服务器根据预设的调整算法获得最终心跳周期后以该最终心跳周期发送的心跳包,例如:
预设的调整算法可以为最终心跳周期等于该客户端历次发送的心跳周期的平均值;
或者,
预设的调整算法可以为最终心跳周期按照如下步骤获得:
根据心跳周期在心跳级别记录中的级别,确定该级别对应的最终心跳周期,其中所述心跳级别记录中一级对应一段心跳周期范围,一级对应一个最终心跳周期;
调整后的心跳周期等于该最终心跳周期。
从上述服务器根据该消息调整心跳周期的方法可见,客户端向服务器发送心跳周期的同时应该发送客户端标识,以使服务器能够根据客户端标识将客户端该次发送的心跳周期结合历次发送的心跳周期进行心跳周期的调整,因此,其中向服务器发送心跳周期消息时,该消息还携带客户端标识,使服务器保存该心跳周期与客户端标识的关联关系。
并且,由于服务器保存了心跳周期与客户端标识的关联关系,在客户端与服务器连接时,服务器可以根据所保存的心跳周期与客户端标识的关联关系,确定该客户端可以不必进行心跳检测,直接以之前调整心跳周期后获得的最终心跳周期发送心跳包。
其中携带客户端标识可以利用该消息中的区域ID标识位的值携带客户端标识,例如:
利用该消息中的区域ID标识位的值携带客户端标识可以包括:
在与服务器连接的网络为蜂窝移动通信网络时,读取出客户端的蜂窝编号,将该编号放入该消息中的区域ID标识位;
在与服务器连接的网络为无线局域网时,将该消息中的区域ID标识位的值设为空,使服务器根据该标识位为空,提取客户端的IP地址作为客户端标识。
示例性装置
在介绍了本发明示例性实施方式的方法之后,接下来,参考图4对本发明示例性实施方式的用于保持连接的心跳装置进行详细介绍。
参见图4,为本发明提供的一种用于保持连接的心跳装置的组成图,如图所示,该装置可以包括:
心跳检测启动单元401:可以配置用于判断心跳检测启动条件是否满足,如果满足,触发心跳检测执行单元执行;
心跳检测执行单元402:可以配置用于执行心跳检测,获得用于保持连接的心跳周期;
心跳上报单元403:可以配置用于向服务器发送该心跳周期,接收服务器根据该消息调整心跳周期后发送的心跳包以保持与服务器的连接。
上述图4所示的实施例装置可以实施于客户端设备。
其中心跳检测启动单元401:可以配置用于判断连接是否已断开或者是否有连接请求,如果是,向服务器发送心跳检测请求,接收服务器针对该请求的反馈,如果反馈为允许检测,则心跳检测启动条件满足。
或者,
其中心跳检测启动单元401:可以配置用于判断是否到达预设的心跳检测启动时间,如果是,则心跳检测启动条件满足。
下面对心跳检测执行单元402进行详细说明,在本发明一实施例中,其中心跳检测执行单元402:可以包括心跳初选单元402a、心跳初报单元402b、计时单元402c、判断单元402d、输出单元402e和心跳重选单元402f;
其中心跳初选单元402a:可以配置用于选取临时心跳周期;
其中心跳初报单元402b:可以配置用于向服务器发送所述临时心跳周期,使服务器以该临时心跳周期发送心跳包;
其中计时单元402c:可以配置用于从向服务器发送该临时心跳周期时,开始计时;
其中判断单元402d:可以配置用于根据计时时长在小于等于该临时心跳周期的时间内,服务器的心跳包的到达情况,判断是否能够获得用于保持连接的心跳周期;
其中输出单元402e:可以配置用于如果能够获得用于保持连接的心跳周期,根据预设算法,对心跳周期进行计算,获得用于保持连接的心跳周期;
其中心跳重选单元402f:可以配置用于如果不能够获得用于保持连接的心跳周期,重新选取临时心跳周期,触发心跳初报单元执行。
其中所述心跳初选单元402a:具体可以配置用于在[心跳周期下限值,心跳周期上限值]的范围内选取临时心跳周期。
其中判断单元402d:具体可以配置用于判断根据预设算法获得的心跳周期是否为[心跳周期下限值,心跳周期上限值]的范围中,符合保持连接条件的心跳周期的最大值,其中符合保持连接条件的心跳周期具体为能够在心跳周期内接收到服务器的心跳包的心跳周期;
如果是,则能够获得用于保持连接的心跳周期;
如果否,则不能够获得用于保持连接的心跳周期。
其中所述心跳初选单元402a:具体可以配置用于选取所述心跳周期下限值乘以特定倍数的结果为临时心跳周期,其中该结果不得小于心跳周期下限值,不得超过心跳周期上限值;
其中心跳重选单元402f:具体可以配置用于如果计时时长在小于等于该临时心跳周期的时间内,未收到服务器的心跳包,且重新选取的临时心跳周期未小于心跳周期下限值,则根据预设的减值规则,以减值的方式重新选取临时心跳周期,如果在计时时长在小于等于未超出该临时心跳周期的时间内时,接收到服务器的心跳包,且重新选取的临时心跳周期未大于心跳周期上限值,则根据预设的增值规则,以增值的方式重新选取临时心跳周期。
其中心跳初选单元402a:例如,还可以配置用于将心跳周期下限值作为上一成功临时心跳周期;
其中判断单元402d:具体可以包括第一判断单元和第二判断单元;
其中第一判断单元:具体可以配置用于如果计时时长在小于等于该临时心跳周期的时间内,未收到服务器的心跳包,则判断上一成功临时心跳周期是否等于心跳周期下限值,如果是,则能够获得用于保持连接的心跳周期,且所述输出单元402e中所使用的预设算法具体为该用于保持连接的心跳周期等于该心跳周期下限值,如果否,则将该临时心跳周期作为上一失败临时心跳周期,并判断该上一失败临时心跳周期与上一成功临时心跳周期的差值是否在预设精度阈值范围内,如果是,则能够获得用于保持连接的心跳周期,且触发输出单元402e中所使用的预设算法为该用于保持连接的心跳周期等于该上一成功临时心跳周期,如果否,则不能够获得用于保持连接的心跳周期,且触发所述心跳重选单元402f中所使用的预设的减值规则具体为上一失败临时心跳周期与上一成功临时心跳周期的平均值为重新选取的临时心跳周期;
其中第二判断单元:具体可以配置用于如果计时时长在小于等于该临时心跳周期的时间内,接收到服务器的心跳包,判断该临时心跳周期是否大于等于心跳周期上限值,如果是,则能够获得用于保持连接的心跳周期,且触发输出单元402e中所使用的预设算法为该用于保持连接的心跳周期等于该心跳周期上限值,如果否,判断是否存在上一失败临时心跳周期,如果不存在,则判断该临时心跳周期乘以特定倍数的结果是否大于心跳周期上限值,如果大于,则能够获得用于保持连接的心跳周期,且触发输出单元402e中所使用的预设算法为该用于保持连接的心跳周期等于该临时心跳周期,如果不大于,则不能够获得用于保持连接的心跳周期,且触发心跳重选单元402f中所使用的增值规则具体为该临时心跳周期乘以特定倍数的结果为重新选取的临时心跳周期,如果存在,则不能够获得用于保持连接的心跳周期,且触发心跳重选单元402f中所使用的增值规则具体为上一失败临时心跳周期与上一成功临时心跳周期的平均值为重新选取的临时心跳周期。
在本发明另一实施例中,其中心跳初选单元402a:具体可以配置用于选取心跳周期上限值为临时心跳周期;
其中判断单元402d:具体包括第一判断单元和第二判断单元;
其中第一判断单元:具体配置用于如果计时时长在小于等于该临时心跳周期的时间内,未收到服务器的心跳包,判断该临时心跳周期减去预设减少值的结果是否小于等心跳周期下限值,如果小于等于,则能够获得用于保持连接的心跳周期,且触发输出单元402e中所使用的预设算法为该用于保持连接的心跳周期等于心跳周期下限值,如果大于,则不能够获得用于保持连接的心跳周期,且触发心跳重选单元402f选取该临时心跳周期减去预设减少值的结果为临时心跳周期;
其中第二判断单元:具体配置用于如果计时时长在小于等于该临时心跳周期的时间内,接收到服务器的心跳包,则能够获得满足保持连接条件的心跳包,且触发输出单元402e中所使用的预设算法为该用于保持连接的心跳周期等于该临时心跳周期。
示例性方法
在介绍了本发明上述应用于客户端的示例性实施方式的方法及装置之后,接下来,参考图5对本发明示例性实施方式的应用于服务器端的用于保持连接的心跳方法进行详细介绍。
参见图5,为本发明又提供的一种用于保持连接的心跳方法流程图,如图所示,该方法可以包括:
S501、接收客户端执行心跳检测后发送的包含心跳周期的消息;
S502、根据该消息,获得用于保持连接的心跳周期;
S503、根据该消息包含的心跳周期,调整心跳周期;
S504、以调整后的周期向客户端发送心跳包以保持与客户端的连接。
上述实施例方法可以应用于服务器端,由于接收了客户端执行心跳检测后发送的包含心跳周期的消息,又根据该消息包含的心跳周期,调整心跳周期,以调整后的周期向客户端发送心跳包,使得服务器可以根据该消息动态调整心跳周期,更符合当前网络环境质量,实现保持长连接的目的。
根据上述客户端心跳检测启动条件包括向服务器发出心跳检测请求的实施例,其中服务器在接收客户端发送的包含心跳周期的消息之前,例如,还可以包括:
接收客户端的心跳检测请求;
针对该检测请求,根据预设的启动条件,判断是否允许检测;
如果允许检测,向客户端反馈允许检测消息。
其中预设的启动条件可以为:是否到达预设的心跳检测启动时间,如果是,则允许检测;或者,是否保存有该客户端标识与心跳周期的关联关系,如果没有,则允许检测。
需要说明的是,上述预设的启动条件仅为示意性说明,还可以在服务器端根据实施需要设置其他启动条件,对此本发明不进行限制。
根据上述客户端执行心跳检测时包括向服务器发送包含临时心跳周期的消息的实施例,其中在服务器接收客户端发送的包含心跳周期的消息之前,例如,还可以包括:
接收客户端在执行心跳检测时发送的包含临时心跳周期的消息;
根据该消息,以该临时心跳周期向客户端发送心跳包。
其中步骤S503根据该消息包含的心跳周期,调整心跳周期的具体实现可以为:根据预设的调整算法获得最终心跳周期,预设的调整算法可以为最终心跳周期等于该客户端历次发送的心跳周期的平均值;
或者,
预设的调整算法可以为最终心跳周期按照如下步骤获得:
根据心跳周期在心跳级别记录中的级别,确定该级别对应的最终心跳周期,其中所述心跳级别记录中一级对应一段心跳周期范围,一级对应一个最终心跳周期;
调整后的心跳周期等于该最终心跳周期。
从上述服务器根据该消息调整心跳周期的方法可见,客户端向服务器发送心跳周期的同时应该发送客户端标识,服务器可以根据客户端标识将客户端该次发送的心跳周期结合历次发送的心跳周期进行心跳周期的调整,因此,服务器在接收心跳周期消息时,该消息还携带客户端标识,在接收客户端发送的包含心跳周期的消息之后,还可以包括:
从该消息中提取出客户端标识,保存该心跳周期与客户端标识的关联关系。
其中提取出客户端标识具体可以根据包含心跳周期的消息包含的区域ID标识位的值提取出客户端标识,例如:从该消息中提取出客户端标识的具体实现为:
从该消息中提取出该区域ID标识位的值;
判断该区域ID标识位的值是否为空;
如果不为空,将该区域ID标识位的值作为客户端标识;
如果为空,提取客户端的IP地址为客户端标识。
应用本发明实施例方法,在保存有该客户端标识与心跳周期的关联关系时,可以不允许客户端检测,原因在于:
由于保存了客户端标识与用于保持心跳连接的心跳周期的关联关系,还可以根据该客户端历次发送的心跳周期确定向该客户端发送心跳包的最终心跳周期,例如,服务器根据客户端历次发送的心跳周期确定向该客户端发送心跳包的最终心跳周期的具体实现可以包括:
判断客户端标识关联的心跳周期数量是否达到预设阈值;
如果达到,根据预设的算法,计算该客户端标识对应的最终心跳周期,保存该客户端标识与最终心跳周期的对应关系;
在与客户端建立连接后,根据客户端标识,查询与之对应的最终心跳周期,以该最终心跳周期向客户端发送心跳包。
其中根据预设的算法,计算该客户端标识对应的最终心跳周期具体可以包括:
根据预设的各个级别和与之对应的心跳周期范围,将客户端标识关联的心跳周期分散到各个级别中;
统计每个级别中包含的心跳周期数量,获得各个级别中心跳周期数量最多的级别;
将该数量最多的级别所对应的心跳周期范围的阈值作为该客户端标识对应的最终心跳周期。
示例性装置
在介绍了本发明上述应用于服务器端的示例性实施方式的方法之后,接下来,参考图6对本发明示例性实施方式的应用于服务器端的用于保持连接的心跳装置进行详细介绍。
参见图6,为本发明又提供的一种用于保持连接的心跳装置组成图,如图所示,该装置可以包括:
心跳接收单元601:可以配置用于接收客户端执行心跳检测后发送的包含心跳周期的消息;
心跳调整单元602:可以配置用于根据该消息,获得用于保持连接的心跳周期,根据该消息包含的心跳周期,调整心跳周期,以调整后的周期向客户端发送心跳包以保持与客户端的连接。
如图6所示的实施例装置可以实施于服务器端设备。
其中,该装置还可以包括:
心跳检测许可单元:具体可以配置用于接收客户端的心跳检测请求,针对该检测请求,根据预设的启动条件,判断是否允许检测,如果允许检测,向客户端反馈允许检测消息。
其中,该装置还可以包括:
心跳检测配合单元:具体可以配置用于接收客户端在执行心跳检测时发送的包含临时心跳周期的消息,根据该消息,以该临时心跳周期向客户端发送心跳包。
其中,该装置还可以包括:
心跳周期保存单元:具体可以配置用于在接收客户端发送的包含心跳周期的消息之后,从该消息中提取出客户端标识,保存该心跳周期与客户端标识的关联关系。
其中心跳周期保存单元:具体可以配置用于根据包含心跳周期的消息包含的区域ID标识位的值提取出客户端标识。
其中心跳周期保存单元:具体可以配置用于从该消息中提取出该区域ID标识位的值,判断该区域ID标识位的值是否为空,如果不为空,将该区域ID标识位的值作为客户端标识,如果为空,提取客户端的IP地址为客户端标识。
其中,该装置还可以包括:
心跳复用单元:具体可以配置用于判断客户端标识关联的心跳周期数量是否达到预设阈值,如果达到,根据预设的算法,计算该客户端标识对应的最终心跳周期,保存该客户端标识与最终心跳周期的对应关系,在与客户端建立连接后,根据客户端标识,查询与之对应的最终心跳周期,以该最终心跳周期向客户端发送心跳包。
其中心跳复用单元:具体可以配置用于根据预设的各个级别和与之对应的心跳周期范围,将客户端标识关联的心跳周期分散到各个级别中,统计每个级别中包含的心跳周期数量,获得各个级别中心跳周期数量最多的级别,将该数量最多的级别所对应的心跳周期范围的阈值作为该客户端标识对应的最终心跳周期。
示例性系统
在介绍了本发明上述分别应用于客户端、服务器端的示例性实施方式的方法及装置之后,接下来,参考图7对本发明示例性实施方式的用于保持连接的心跳系统进行详细介绍。
参见图7,为本发明另提供的一种用于保持连接的心跳系统组成图,如图所示,该系统可以包括:
至少一个客户端701:用于判断心跳检测启动条件是否满足,如果满足,执行心跳检测,获得用于保持连接的心跳周期,向服务器发送包含该心跳周期的消息,接收服务器根据该消息调整心跳周期后发送的心跳包以保持与服务器的连接;
服务器702:用于接收客户端执行心跳检测后发送的包含心跳周期的消息,根据该消息,获得用于保持连接的心跳周期,根据该消息包含的心跳周期,调整心跳周期,以调整后的周期向客户端发送心跳包以保持与客户端的连接。
应当注意,尽管在上文详细描述中提及了装置中的单元或子单元,但是这种划分仅仅并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
申请文件中提及的动词“包括”、“包含”及其词形变化的使用不排除除了申请文件中记载的那些元素或步骤之外的元素或步骤的存在。元素前的冠词“一”或“一个”不排除多个这种元素的存在。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。所附权利要求的范围符合最宽泛的解释,从而包含所有这样的修改及等同结构和功能。
Claims (34)
1.一种用于保持连接的心跳方法,包括:
客户端判断心跳检测启动条件是否满足;其中,当网络质量变化时,所述心跳检测启动条件满足;
如果满足,客户端执行心跳检测,获得用于保持连接的心跳周期;
客户端向服务器发送包含该心跳周期的消息,接收服务器根据该消息调整心跳周期后发送的心跳包以保持与服务器的连接;
其中客户端执行心跳检测,获得用于保持连接的心跳周期的具体实现为:
A.客户端选取临时心跳周期;
B.客户端向服务器发送所述临时心跳周期,使服务器以该临时心跳周期发送心跳包;
C.客户端从向服务器发送该临时心跳周期时,开始计时;
D.客户端根据计时时长在小于等于该临时心跳周期的时间内,服务器的心跳包的到达情况,判断是否能够获得用于保持连接的心跳周期;
E.如果能够获得,客户端根据预设算法,对心跳周期进行计算,获得用于保持连接的心跳周期;
F.如果不能够获得,客户端重新选取临时心跳周期,重新进入步骤B。
2.根据权利要求1所述的方法,其中客户端判断心跳检测启动条件是否满足的具体实现为:
客户端判断连接是否已断开或者是否有连接请求;
如果是,客户端向服务器发送心跳检测请求;
客户端接收服务器针对该请求的反馈;
如果反馈为允许检测,则客户端心跳检测启动条件满足。
3.根据权利要求1所述的方法,其中客户端判断心跳检测启动条件是否满足的具体实现为:
客户端判断是否到达预设的心跳检测启动时间;
如果是,则客户端心跳检测启动条件满足。
4.根据权利要求1所述的方法,其中客户端选取临时心跳周期具体在[T1,T2]的范围内选取临时心跳周期;其中,T1为心跳周期下限值,T2为心跳周期上限值。
5.根据权利要求4所述的方法,其中步骤D具体判断根据预设算法获得的心跳周期是否在[T1,T2]的范围中,符合保持连接条件的心跳周期的最大值,其中符合保持连接条件的心跳周期具体为能够在心跳周期内接收到服务器的心跳包的心跳周期;其中,T1为心跳周期下限值,T2为心跳周期上限值;
如果是,则能够获得用于保持连接的心跳周期;
如果否,则不能够获得用于保持连接的心跳周期。
6.根据权利要求5所述的方法,其中步骤A所述选取临时心跳周期具体包括选取心跳周期下限值乘以特定倍数的结果为临时心跳周期,其中该结果不得小于心跳周期下限值,不得超过心跳周期上限值;
其中如果计时时长在小于等于该临时心跳周期的时间内,未收到服务器的心跳包,且步骤F中重新选取的临时心跳周期未小于心跳周期下限值,则步骤F具体为根据预设的减值规则,以减值的方式重新选取临时心跳周期;
其中如果计时时长在小于等于该临时心跳周期的时间内,接收到服务器的心跳包,且步骤F中重新选取的临时心跳周期未大于心跳周期上限值,则步骤F具体为根据预设的增值规则,以增值的方式重新选取临时心跳周期。
7.根据权利要求6所述的方法,其中步骤A还包括将心跳周期下限值作为上一成功临时心跳周期;
其中步骤D根据计时时长在该临时心跳周期的时间内,服务器的心跳包的到达情况,判断是否能够获得用于保持连接的心跳周期的具体实现为:
如果计时时长在小于等于该临时心跳周期的时间内,未收到服务器的心跳包,则判断上一成功临时心跳周期是否等于心跳周期下限值;
如果是,则能够获得用于保持连接的心跳周期,且步骤E中的预设算法具体为该用于保持连接的心跳周期等于该心跳周期下限值;
如果否,则将该临时心跳周期作为上一失败临时心跳周期,并判断该上一失败临时心跳周期与上一成功临时心跳周期的差值是否在预设精度阈值范围内,如果是,则能够获得用于保持连接的心跳周期,且步骤E中的预设算法具体为该用于保持连接的心跳周期等于该上一成功临时心跳周期,如果否,则不能够获得用于保持连接的心跳周期,且步骤F中的预设的减值规则具体为上一失败临时心跳周期与上一成功临时心跳周期的平均值为重新选取的临时心跳周期;
如果计时时长在小于等于该临时心跳周期的时间内,接收到服务器的心跳包,判断该临时心跳周期是否大于等于心跳周期上限值;
如果是,则能够获得用于保持连接的心跳周期,且步骤E中的预设算法具体为该用于保持连接的心跳周期等于该心跳周期上限值;
如果否,则将该临时心跳周期作为上一成功临时心跳周期,且判断是否存在上一失败临时心跳周期;
如果不存在,则判断该临时心跳周期乘以特定倍数的结果是否大于心跳周期上限值,如果大于,则能够获得用于保持连接的心跳周期,且步骤E中的预设算法具体为该用于保持连接的心跳周期等于该临时心跳周期,如果不大于,则不能够获得用于保持连接的心跳周期,且步骤F中的预设的增值规则具体为该临时心跳周期乘以特定倍数的结果为重新选取的临时心跳周期;
如果存在,则不能够获得用于保持连接的心跳周期,且步骤F中的增值规则具体为上一失败临时心跳周期与上一成功临时心跳周期的平均值为重新选取的临时心跳周期。
8.根据权利要求5所述的方法,其中步骤A所述选取临时心跳周期具体包括选取心跳周期上限值为临时心跳周期;
其中根据计时时长在小于等于该临时心跳周期的时间内,服务器的心跳包的到达情况,判断是否能够获得用于保持连接的心跳周期的具体实现为:
如果计时时长在小于等于该临时心跳周期的时间内,未收到服务器的心跳包,判断该临时心跳周期减去预设减少值的结果是否小于等于心跳周期下限值;
如果小于等于,则能够获得用于保持连接的心跳周期,且步骤E中的预设算法具体为该用于保持连接的心跳周期等于心跳周期下限值;
如果大于,则不能够获得用于保持连接的心跳周期,且步骤F中的重新选取临时心跳周期具体包括选取该临时心跳周期减去预设减少值的结果为临时心跳周期;
如果计时时长在小于等于该临时心跳周期的时间内,接收到服务器的心跳包,则能够获得用于保持连接的心跳周期,且步骤E中的预设算法具体为该用于保持连接的心跳周期等于该临时心跳周期。
9.根据权利要求1所述的方法,其中客户端向服务器发送心跳周期消息时,该消息还携带客户端标识,使服务器保存该心跳周期与客户端标识的关联关系。
10.根据权利要求9所述的方法,其中携带客户端标识具体包括利用该消息中的区域ID标识位的值携带客户端标识。
11.根据权利要求10所述的方法,利用该消息中的区域ID标识位的值携带客户端标识具体包括:
在客户端与服务器连接的网络为蜂窝移动通信网络时,读取出客户端的蜂窝编号,将该编号放入该消息中的区域ID标识位;
在客户端与服务器连接的网络为无线局域网时,将该消息中的区域ID标识位的值设为空,使服务器根据该标识位为空,提取客户端的IP地址作为客户端标识。
12.一种用于保持连接的心跳装置,应用于客户端,包括:
心跳检测启动单元:配置用于判断心跳检测启动条件是否满足,如果满足,触发心跳检测执行单元执行;其中,当网络质量变化时,所述心跳检测启动条件满足;
心跳检测执行单元:配置用于执行心跳检测,获得用于保持连接的心跳周期;
心跳上报单元:配置用于向服务器发送包含该心跳周期的消息,接收服务器根据该消息调整心跳周期后发送的心跳包以保持与服务器的连接;
其中心跳检测执行单元:具体包括心跳初选单元、心跳初报单元、计时单元、判断单元、输出单元和心跳重选单元;
其中心跳初选单元:具体配置用于选取临时心跳周期;
其中心跳初报单元:具体配置用于向服务器发送所述临时心跳周期,使服务器以该临时心跳周期发送心跳包;
其中计时单元:具体配置用于从向服务器发送该临时心跳周期时,开始计时;
其中判断单元:具体配置用于根据计时时长在小于等于该临时心跳周期的时间内,服务器的心跳包的到达情况,判断是否能够获得用于保持连接的心跳周期;
其中输出单元:具体配置用于如果能够获得用于保持连接的心跳周期,根据预设算法,对心跳周期进行计算,获得用于保持连接的心跳周期;
其中心跳重选单元:具体配置用于如果不能够获得用于保持连接的心跳周期,重新选取临时心跳周期,触发心跳初报单元。
13.根据权利要求12所述的装置,其中心跳检测启动单元:具体配置用于判断连接是否已断开或者是否有连接请求,如果是,向服务器发送心跳检测请求,接收服务器针对该请求的反馈,如果反馈为允许检测,则心跳检测启动条件满足。
14.根据权利要求12所述的装置,其中心跳检测启动单元:具体配置用于判断是否到达预设的心跳检测启动时间,如果是,则心跳检测启动条件满足。
15.根据权利要求12所述的装置,其中所述心跳初选单元:具体配置用于在[T1,T2]的范围内选取临时心跳周期;其中,T1为心跳周期下限值,T2为心跳周期上限值。
16.根据权利要求15所述的装置,其中判断单元:具体配置用于判断根据预设算法获得的心跳周期是否在[T1,T2]的范围中,符合保持连接条件的心跳周期的最大值,其中符合保持连接条件的心跳周期具体为能够在心跳周期内接收到服务器的心跳包的心跳周期;其中,T1为心跳周期下限值,T2为心跳周期上限值;
如果是,则能够获得用于保持连接的心跳周期;
如果否,则不能够获得用于保持连接的心跳周期。
17.根据权利要求16所述的装置,其中所述心跳初选单元:具体配置用于选取所述心跳周期下限值乘以特定倍数的结果为临时心跳周期,其中该结果不得小于心跳周期下限值,不得超过心跳周期上限值;
其中心跳重选单元:具体配置用于如果计时时长在小于等于该临时心跳周期的时间内,未收到服务器的心跳包,且重新选取的临时心跳周期未小于心跳周期下限值,则根据预设的减值规则,以减值的方式重新选取临时心跳周期,如果在计时时长在小于等于未超出该临时心跳周期的时间内时,接收到服务器的心跳包,且重新选取的临时心跳周期未大于心跳周期上限值,则根据预设的增值规则,以增值的方式重新选取临时心跳周期。
18.根据权利要求17所述的装置,其中心跳初选单元:还配置用于将心跳周期下限值作为上一成功临时心跳周期;
其中判断单元:具体包括第一判断单元和第二判断单元;
其中第一判断单元:具体配置用于如果计时时长在小于等于该临时心跳周期的时间内,未收到服务器的心跳包,则判断上一成功临时心跳周期是否等于心跳周期下限值,如果是,则能够获得用于保持连接的心跳周期,且所述输出单元中所使用的预设算法具体为该用于保持连接的心跳周期等于该心跳周期下限值,如果否,则将该临时心跳周期作为上一失败临时心跳周期,并判断该上一失败临时心跳周期与上一成功临时心跳周期的差值是否在预设精度阈值范围内,如果是,则能够获得用于保持连接的心跳周期,且触发输出单元中所使用的预设算法为该用于保持连接的心跳周期等于该上一成功临时心跳周期,如果否,则不能够获得用于保持连接的心跳周期,且触发所述心跳重选单元中所使用的预设的减值规则具体为上一失败临时心跳周期与上一成功临时心跳周期的平均值为重新选取的临时心跳周期;
其中第二判断单元:具体配置用于如果计时时长在小于等于该临时心跳周期的时间内,接收到服务器的心跳包,判断该临时心跳周期是否大于等于心跳周期上限值,如果是,则能够获得用于保持连接的心跳周期,且触发输出单元中所使用的预设算法为该用于保持连接的心跳周期等于该心跳周期上限值,如果否,判断是否存在上一失败临时心跳周期,如果不存在,则判断该临时心跳周期乘以特定倍数的结果是否大于心跳周期上限值,如果大于,则能够获得用于保持连接的心跳周期,且触发输出单元中所使用的预设算法为该用于保持连接的心跳周期等于该临时心跳周期,如果不大于,则不能够获得用于保持连接的心跳周期,且触发心跳重选单元中所使用的增值规则具体为该临时心跳周期乘以特定倍数的结果为重新选取的临时心跳周期,如果存在,则不能够获得用于保持连接的心跳周期,且触发心跳重选单元中所使用的增值规则具体为上一失败临时心跳周期与上一成功临时心跳周期的平均值为重新选取的临时心跳周期。
19.根据权利要求16所述的装置,其中心跳初选单元:具体配置用于选取心跳周期上限值为临时心跳周期;
其中判断单元:具体包括第一判断单元和第二判断单元;
其中第一判断单元:具体配置用于如果计时时长在小于等于该临时心跳周期的时间内,未收到服务器的心跳包,判断该临时心跳周期减去预设减少值的结果是否小于等于心跳周期下限值,如果小于等于,则能够获得用于保持连接的心跳周期,且触发输出单元中所使用的预设算法为该用于保持连接的心跳周期等于心跳周期下限值,如果大于,则不能够获得用于保持连接的心跳周期,且触发心跳重选单元选取该临时心跳周期减去预设减少值的结果为临时心跳周期;
其中第二判断单元:具体配置用于如果计时时长在小于等于该临时心跳周期的时间内,接收到服务器的心跳包,则能够获得满足保持连接条件的心跳包,且触发输出单元中所使用的预设算法为该用于保持连接的心跳周期等于该临时心跳周期。
20.一种用于保持连接的心跳方法,包括:
服务器接收客户端执行心跳检测后发送的包含心跳周期的消息;
服务器根据该消息,获得用于保持连接的心跳周期;
服务器根据该消息包含的心跳周期,调整心跳周期;
服务器以调整后的周期向客户端发送心跳包以保持与客户端的连接;
其中服务器在接收客户端发送的包含心跳周期的消息之前,还包括:
服务器接收客户端在执行心跳检测时发送的包含临时心跳周期的消息;
服务器根据该消息,以该临时心跳周期向客户端发送心跳包,以使得所述客户端根据计时时长在小于等于该临时心跳周期的时间内,服务器的心跳包的到达情况,判断是否能够获得用于保持连接的心跳周期,其中,所述计时时长为客户端从向服务器发送该临时心跳周期时,开始计时的时长;并使得客户端根据计时时长在小于等于该临时心跳周期的时间内,服务器的心跳包的到达情况,判断是否能够获得用于保持连接的心跳周期;如果能够获得,客户端根据预设算法,对心跳周期进行计算,获得用于保持连接的心跳周期;如果不能够获得,客户端重新选取临时心跳周期,重新向所述服务器发送所述临时心跳周期。
21.根据权利要求20所述的方法,其中服务器在接收客户端发送的包含心跳周期的消息之前,还包括:
服务器接收客户端的心跳检测请求;
服务器针对该检测请求,根据预设的启动条件,判断是否允许检测;
如果允许检测,服务器向客户端反馈允许检测消息。
22.根据权利要求20所述的方法,其中服务器在接收客户端发送的包含心跳周期的消息之后,还包括:
服务器从该消息中提取出客户端标识,保存该心跳周期与客户端标识的关联关系。
23.根据权利要求22所述的方法,其中提取出客户端标识具体包括根据包含心跳周期的消息包含的区域ID标识位的值提取出客户端标识。
24.根据权利要求23所述的方法,其中所述服务器从该消息中提取出客户端标识的具体实现为:
服务器从该消息中提取出该区域ID标识位的值;
服务器判断该区域ID标识位的值是否为空;
如果不为空,服务器将该区域ID标识位的值作为客户端标识;
如果为空,服务器提取客户端的IP地址为客户端标识。
25.根据权利要求24所述的方法,还包括:
服务器判断客户端标识关联的心跳周期数量是否达到预设阈值;
如果达到,服务器根据预设的算法,计算该客户端标识对应的最终心跳周期,保存该客户端标识与最终心跳周期的对应关系;
服务器在与客户端建立连接后,根据客户端标识,查询与之对应的最终心跳周期,以该最终心跳周期向客户端发送心跳包。
26.根据权利要求25所述的方法,其中服务器根据预设的算法,计算该客户端标识对应的最终心跳周期具体包括:
服务器根据预设的各个级别和与之对应的心跳周期范围,将客户端标识关联的心跳周期分散到各个级别中;
服务器统计每个级别中包含的心跳周期数量,获得各个级别中心跳周期数量最多的级别;
服务器将该数量最多的级别所对应的心跳周期范围的阈值作为该客户端标识对应的最终心跳周期。
27.一种用于保持连接的心跳装置,应用于服务器,包括:
心跳接收单元:配置用于接收客户端执行心跳检测后发送的包含心跳周期的消息;
心跳调整单元:配置用于根据该消息,获得用于保持连接的心跳周期,根据该消息包含的心跳周期,调整心跳周期,以调整后的周期向客户端发送心跳包以保持与客户端的连接;
还包括:
心跳检测配合单元:配置用于接收客户端在执行心跳检测时发送的包含临时心跳周期的消息,根据该消息,以该临时心跳周期向客户端发送心跳包,以使得所述客户端根据计时时长在小于等于该临时心跳周期的时间内,服务器的心跳包的到达情况,判断是否能够获得用于保持连接的心跳周期,其中,所述计时时长为客户端从向服务器发送该临时心跳周期时,开始计时的时长;并使得客户端根据计时时长在小于等于该临时心跳周期的时间内,服务器的心跳包的到达情况,判断是否能够获得用于保持连接的心跳周期;如果能够获得,客户端根据预设算法,对心跳周期进行计算,获得用于保持连接的心跳周期;如果不能够获得,客户端重新选取临时心跳周期,重新向所述服务器发送所述临时心跳周期。
28.根据权利要求27所述的装置,还包括:
心跳检测许可单元:配置用于接收客户端的心跳检测请求,针对该检测请求,根据预设的启动条件,判断是否允许检测,如果允许检测,向客户端反馈允许检测消息。
29.根据权利要求27所述的装置,还包括:
心跳周期保存单元:配置用于在接收客户端发送的包含心跳周期的消息之后,从该消息中提取出客户端标识,保存该心跳周期与客户端标识的关联关系。
30.根据权利要求29所述的装置,其中心跳周期保存单元:具体配置用于根据包含心跳周期的消息包含的区域ID标识位的值提取出客户端标识。
31.根据权利要求30所述的装置,其中心跳周期保存单元:具体配置用于从该消息中提取出该区域ID标识位的值,判断该区域ID标识位的值是否为空,如果不为空,将该区域ID标识位的值作为客户端标识,如果为空,提取客户端的IP地址为客户端标识。
32.根据权利要求31所述的装置,还包括:
心跳复用单元:配置用于判断客户端标识关联的心跳周期数量是否达到预设阈值,如果达到,根据预设的算法,计算该客户端标识对应的最终心跳周期,保存该客户端标识与最终心跳周期的对应关系,在与客户端建立连接后,根据客户端标识,查询与之对应的最终心跳周期,以该最终心跳周期向客户端发送心跳包。
33.根据权利要求32所述的装置,其中心跳复用单元:具体配置用于根据预设的各个级别和与之对应的心跳周期范围,将客户端标识关联的心跳周期分散到各个级别中,统计每个级别中包含的心跳周期数量,获得各个级别中心跳周期数量最多的级别,将该数量最多的级别所对应的心跳周期范围的阈值作为该客户端标识对应的最终心跳周期。
34.一种用于保持连接的心跳系统,包括:
至少一个客户端:用于判断心跳检测启动条件是否满足,如果满足,执行心跳检测,获得用于保持连接的心跳周期,向服务器发送包含该心跳周期的消息,接收服务器根据该消息调整心跳周期后发送的心跳包以保持与服务器的连接;其中,当网络质量变化时,所述心跳检测启动条件满足;其中客户端用于执行心跳检测,获得用于保持连接的心跳周期的具体实现为:
A.客户端选取临时心跳周期;
B.客户端向服务器发送所述临时心跳周期,使服务器以该临时心跳周期发送心跳包;
C.客户端从向服务器发送该临时心跳周期时,开始计时;
D.客户端根据计时时长在小于等于该临时心跳周期的时间内,服务器的心跳包的到达情况,判断是否能够获得用于保持连接的心跳周期;
E.如果能够获得,客户端根据预设算法,对心跳周期进行计算,获得用于保持连接的心跳周期;
F.如果不能够获得,客户端重新选取临时心跳周期,重新进入步骤B;
服务器:用于接收客户端执行心跳检测后发送的包含心跳周期的消息,根据该消息,获得用于保持连接的心跳周期,根据该消息包含的心跳周期,调整心跳周期,以调整后的周期向客户端发送心跳包以保持与客户端的连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310049291.9A CN103139303B (zh) | 2013-02-07 | 2013-02-07 | 一种用于保持连接的心跳方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310049291.9A CN103139303B (zh) | 2013-02-07 | 2013-02-07 | 一种用于保持连接的心跳方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103139303A CN103139303A (zh) | 2013-06-05 |
CN103139303B true CN103139303B (zh) | 2016-08-17 |
Family
ID=48498600
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310049291.9A Active CN103139303B (zh) | 2013-02-07 | 2013-02-07 | 一种用于保持连接的心跳方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103139303B (zh) |
Families Citing this family (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104426692A (zh) * | 2013-08-26 | 2015-03-18 | 联想(北京)有限公司 | 一种信息处理方法,一种装置及网络服务器 |
CN104426714B (zh) * | 2013-08-30 | 2017-12-29 | 联想(北京)有限公司 | 一种用于保持连接的心跳测试方法和装置 |
CN103605689B (zh) * | 2013-11-01 | 2017-12-29 | 北京奇虎科技有限公司 | 一种获取访问停留时间的方法及装置 |
CN103581950B (zh) * | 2013-11-15 | 2017-02-01 | 中国联合网络通信集团有限公司 | 电子设备、心跳消息的发送方法与系统 |
CN104734896B (zh) * | 2013-12-18 | 2019-04-23 | 青岛海尔空调器有限总公司 | 业务子系统运行情况的获取方法和系统 |
CN104852946A (zh) * | 2014-02-19 | 2015-08-19 | 中国移动通信集团公司 | 一种发送心跳报文的方法和设备 |
CN105337935B (zh) * | 2014-07-09 | 2018-12-21 | 阿里巴巴集团控股有限公司 | 一种建立客户端和服务端长连接的方法和装置 |
CN105392187A (zh) * | 2014-09-04 | 2016-03-09 | 中兴通讯股份有限公司 | 一种即时通讯应用程序管理方法、装置及其移动终端 |
CN105578515B (zh) * | 2014-10-15 | 2019-04-02 | 上海点艺信息技术有限公司 | 一种心跳频率参数的维护方法及服务器 |
CN106341342A (zh) * | 2015-07-09 | 2017-01-18 | 阿里巴巴集团控股有限公司 | 维持通信连接的方法、装置、终端及服务器 |
CN105610888A (zh) * | 2015-09-08 | 2016-05-25 | 华南师范大学 | 基于安卓的利用socket推送消息的方法和系统 |
CN105227398B (zh) * | 2015-09-08 | 2018-09-04 | 深圳创维-Rgb电子有限公司 | 多业务共享长连接方法、系统及其装置、终端 |
CN105245531B (zh) * | 2015-10-21 | 2018-12-25 | 北京捷思锐科技股份有限公司 | 一种掉线检测方法、装置及服务器 |
CN105516234A (zh) * | 2015-11-13 | 2016-04-20 | 深圳市微纳集成电路与系统应用研究院 | 一种可穿戴智能设备心跳控制装置和方法 |
CN105898239A (zh) * | 2016-06-03 | 2016-08-24 | 北京中电万联科技股份有限公司 | 一种公交车司机行为异常监测系统及监测方法 |
CN107645529B (zh) * | 2016-07-21 | 2020-06-30 | 腾讯科技(深圳)有限公司 | 心跳包发送方法及装置 |
CN106341908A (zh) * | 2016-08-24 | 2017-01-18 | 福州瑞芯微电子股份有限公司 | 一种移动网络长连接维持的方法及系统 |
CN107872495B (zh) * | 2016-09-28 | 2020-06-26 | 腾讯科技(深圳)有限公司 | 一种信息处理方法及终端设备 |
CN106789394A (zh) * | 2016-11-18 | 2017-05-31 | 上海斐讯数据通信技术有限公司 | 一种长连接服务器保活报文控制方法及系统 |
CN106961364A (zh) * | 2017-04-24 | 2017-07-18 | 努比亚技术有限公司 | 心跳检测方法及应用服务器 |
CN107197509A (zh) * | 2017-05-22 | 2017-09-22 | 深圳市沃特沃德股份有限公司 | 心跳连接方法和装置 |
CN107135518B (zh) * | 2017-06-09 | 2020-05-19 | 深圳市沃特沃德股份有限公司 | 维持心跳连接的方法、装置和终端设备 |
CN107276859B (zh) * | 2017-08-21 | 2019-10-25 | 武汉斗鱼网络科技有限公司 | 保持长连接的方法及装置 |
CN107612789B (zh) * | 2017-11-09 | 2020-08-28 | 北京奇艺世纪科技有限公司 | 一种客户端的心跳间隔调整方法及装置 |
CN109981384A (zh) * | 2017-12-27 | 2019-07-05 | 航天信息股份有限公司 | 一种动态调整心跳周期的系统和方法 |
CN110049068A (zh) * | 2018-01-15 | 2019-07-23 | 北京京东尚科信息技术有限公司 | 一种基于超文本传输协议的网络长连接优化的方法和装置 |
CN108449239B (zh) * | 2018-06-19 | 2020-11-03 | 广州视源电子科技股份有限公司 | 心跳包检测方法、装置、设备和存储介质 |
CN108933820B (zh) * | 2018-06-27 | 2021-07-23 | 新华三技术有限公司 | 一种用户终端下线的确定方法、装置和网络设备 |
CN109327346A (zh) * | 2018-07-27 | 2019-02-12 | 上海电享信息科技有限公司 | 一种客户端心跳频率动态控制方法及系统 |
CN109150670B (zh) * | 2018-11-05 | 2020-11-27 | 中通天鸿(北京)通信科技股份有限公司 | 一种用于保持连接的心跳方法和系统 |
CN109547293A (zh) * | 2018-12-20 | 2019-03-29 | 上海数果科技有限公司 | 心跳数据包发送方法 |
CN109769214A (zh) * | 2018-12-26 | 2019-05-17 | 彩讯科技股份有限公司 | 一种消息推送方法、装置、终端及介质 |
CN111698098A (zh) * | 2019-03-15 | 2020-09-22 | 北京京东尚科信息技术有限公司 | 通信方法、装置和计算机可读存储介质 |
CN110225084B (zh) * | 2019-05-06 | 2022-06-14 | 北京口袋时尚科技有限公司 | 一种保持tcp长连接的方法及装置 |
CN110784369A (zh) * | 2019-09-16 | 2020-02-11 | 珠海格力电器股份有限公司 | 检测长连接的方法、服务器、终端及存储介质 |
CN111148171B (zh) * | 2019-12-30 | 2022-03-15 | 中国联合网络通信集团有限公司 | 通话切换方法及服务器 |
CN111817877B (zh) * | 2020-06-05 | 2023-06-30 | 北京嘀嘀无限科技发展有限公司 | 充电桩心跳控制方法、装置、电子设备、反馈方法、服务器及存储介质 |
CN112073257B (zh) * | 2020-07-31 | 2022-05-03 | 青岛海尔科技有限公司 | 用于控制设备上传数据的方法及装置、设备 |
CN112187876A (zh) * | 2020-09-10 | 2021-01-05 | 交控科技股份有限公司 | 一种通讯列表建立方法、通信方法及云平台 |
CN112148604B (zh) * | 2020-09-21 | 2024-07-19 | 京东科技控股股份有限公司 | iOS软件测试方法、装置、设备及计算机可读介质 |
CN113114538A (zh) * | 2021-04-19 | 2021-07-13 | 中国工商银行股份有限公司 | 一种心跳检测方法及装置 |
CN113873017B (zh) * | 2021-09-06 | 2023-12-26 | 绿盟科技集团股份有限公司 | 一种心跳周期调整方法、装置、客户端以及服务器 |
CN113783728A (zh) * | 2021-09-10 | 2021-12-10 | 咪咕数字传媒有限公司 | 连接优化方法、装置、计算设备及计算机存储介质 |
CN113993195A (zh) * | 2021-10-22 | 2022-01-28 | 杭州研极微电子有限公司 | 一种通信设备休眠状态下功耗的降低方法、装置 |
CN116016276A (zh) * | 2022-12-02 | 2023-04-25 | 京东科技信息技术有限公司 | 服务器健康状态检测方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101471992A (zh) * | 2007-12-24 | 2009-07-01 | 联想(北京)有限公司 | 一种移动终端及通过网络向移动终端推送业务信息的方法 |
CN101699912A (zh) * | 2007-07-03 | 2010-04-28 | 卢苇 | 连接服务器和移动终端的传输方法 |
WO2012167664A1 (zh) * | 2011-11-15 | 2012-12-13 | 华为技术有限公司 | 一种支持应用客户端永久在线的方法、系统及装置 |
-
2013
- 2013-02-07 CN CN201310049291.9A patent/CN103139303B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101699912A (zh) * | 2007-07-03 | 2010-04-28 | 卢苇 | 连接服务器和移动终端的传输方法 |
CN101471992A (zh) * | 2007-12-24 | 2009-07-01 | 联想(北京)有限公司 | 一种移动终端及通过网络向移动终端推送业务信息的方法 |
WO2012167664A1 (zh) * | 2011-11-15 | 2012-12-13 | 华为技术有限公司 | 一种支持应用客户端永久在线的方法、系统及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103139303A (zh) | 2013-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103139303B (zh) | 一种用于保持连接的心跳方法、装置及系统 | |
CN109302346B (zh) | 一种传输数据流量的方法和装置 | |
CN108075934B (zh) | 一种网络质量监控方法、装置及系统 | |
US9832716B2 (en) | Switching between networks based on quality of available networks | |
RU2726741C1 (ru) | Способ и устройство для запроса системной информации, пользовательское оборудование и базовая станция | |
EP3525417A1 (en) | Data processing method, device, storage medium, electronic device and server | |
US20120317616A1 (en) | Node device and method to prevent overflow of pending interest table in name based network system | |
CN111711546B (zh) | 设备吞吐量测试方法、装置、系统和计算机可读存储介质 | |
CN104363638A (zh) | 路由器信号强度调节方法及装置 | |
WO2019042180A1 (zh) | 资源配置方法及相关产品 | |
US20160192367A1 (en) | Method and system for searching network in long term evolution slave mode | |
CN113472900B (zh) | 报文处理方法、设备、存储介质及计算机程序产品 | |
EP2985730A1 (en) | Method and device for partially-upgrading | |
EP3598813A1 (en) | Information processing method, apparatus, computer readable storage medium and electronic device | |
RU2015152498A (ru) | Способ и устройство для предоставления информации | |
CN110650503A (zh) | 网络接入方法、装置、系统和计算机可读存储介质 | |
CN109144782B (zh) | 一种数据恢复方法及装置 | |
CN104580177A (zh) | 资源提供方法、装置和系统 | |
CN105635124A (zh) | 流量控制方法和装置 | |
CN105764094A (zh) | 混合负载均衡方法及装置 | |
CN111093238B (zh) | 无线网络的控制方法、装置、存储介质及电子设备 | |
CN106021026B (zh) | 一种备份方法及装置 | |
CN103856489A (zh) | 一种防止重放攻击的实现方法和设备 | |
KR102580417B1 (ko) | 메시지 전송 지연 관리 장치 및 방법 | |
EP3065445A1 (en) | Method, cse, and system for transmitting m2m application request |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |