CN117294750B - 调整mqtt心跳频率的方法和装置 - Google Patents
调整mqtt心跳频率的方法和装置 Download PDFInfo
- Publication number
- CN117294750B CN117294750B CN202311586371.8A CN202311586371A CN117294750B CN 117294750 B CN117294750 B CN 117294750B CN 202311586371 A CN202311586371 A CN 202311586371A CN 117294750 B CN117294750 B CN 117294750B
- Authority
- CN
- China
- Prior art keywords
- heartbeat frequency
- frequency
- heartbeat
- mqtt
- preset
- 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
- 230000001121 heart beat frequency Effects 0.000 title claims abstract description 276
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000004891 communication Methods 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 9
- 230000003247 decreasing effect Effects 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 5
- 238000001514 detection method Methods 0.000 claims description 5
- 230000004083 survival effect Effects 0.000 abstract description 10
- 238000010586 diagram Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 7
- 230000001351 cycling effect Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/143—Termination or inactivation of sessions, e.g. event-controlled end of session
- H04L67/145—Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Abstract
本申请涉及一种调整MQTT心跳频率的方法和装置,该方法包括:(a)检测MQTT客户端与MQTT服务端在预设时间段内、当前心跳频率下的超时次数是否超过预设值;(b)响应于所述超时次数不超过所述预设值,以第一设定方式降低心跳频率,获得第一心跳频率;(c)在所述第一心跳频率不低于第一预设频率阈值的情况下,将所述第一心跳频率设置为当前心跳频率,返回步骤(a);以及(d)在超时次数首次超过所述预设值的情况下,将在所述当前心跳频率前一次记录的心跳频率确定为调整后的心跳频率。本申请的方案能够根据当前网络环境,自适应调整MQTT客户端的心跳频率,使得MQTT客户端的心跳频率在保证存活的前提下,将心跳频率维持在适于当前网络环境的较低水平。
Description
技术领域
本申请涉及计算机软件技术领域,尤其涉及一种调整MQTT心跳频率的方法和装置。
背景技术
大量的物联网(IoT,Internet of Things)设备采用MQTT(Message QueuingTelemetry Transport,消息队列遥测传输协议)协议传输控制指令和数据,大部分的设备传输的数据和指令频率都不高,大量的资源都消耗在用于保障存活(keepalive)的ping/pong(乒乓信号)中。目前,物联网设备的ping/pong频率都是固定的,出厂设置后就不会变动。
然而,发明人发现,固定ping/pong频率无法适应现实的网络环境,要么频率太高,导致需要承担较高的流量费用和服务器费用;要么频率太低,导致中间的NAT(NetworkAddress Translation,网络地址转换)转换装置无法维持MQTT连接,导致设备经常出现上线。
发明内容
针对现有技术中MQTT客户端(例如物联网设备)固定ping/pong频率导致的问题,本申请提供了一种调整MQTT心跳频率的方案,该方案能够根据当前网络环境,自适应调整MQTT客户端的心跳频率,即调整ping/pong频率,使得MQTT客户端的心跳频率在保证存活的前提下,将心跳频率维持在适于当前网络环境的较低水平。
根据本申请的第一个方面,提供一种调整MQTT心跳频率的方法,其特征在于,包括:
(a)检测MQTT客户端与MQTT服务端在预设时间段内、当前心跳频率下的超时次数是否超过预设值;
(b)响应于所述超时次数不超过所述预设值,以第一设定方式降低心跳频率,获得第一心跳频率;
(c)在所述第一心跳频率不低于第一预设频率阈值的情况下,将所述第一心跳频率设置为当前心跳频率,返回步骤(a);以及
(d)在所述超时次数首次超过所述预设值的情况下,将在所述当前心跳频率前一次记录的心跳频率确定为调整后的心跳频率。
根据本申请的第二个方面,提供一种调整MQTT心跳频率的装置,其特征在于,包括:
检测模块,用于检测MQTT客户端与MQTT服务端在预设时间段内、当前心跳频率下的超时次数是否超过预设值;
心跳频率降低模块,用于响应于所述超时次数不超过所述预设值,以第一设定方式降低心跳频率,获得第一心跳频率;
第一设置模块,用于在所述第一心跳频率不低于第一预设频率阈值的情况下,将所述第一心跳频率设置为当前心跳频率;以及
第一确定模块,用于在所述超时次数首次超过所述预设值的情况下,将在所述当前心跳频率前一次记录的心跳频率确定为调整后的心跳频率。
根据本申请的第三个方面,提供一种电子设备,包括:
处理器;以及
存储器,存储有计算机指令,当所述计算机指令被所述处理器执行时,使得所述处理器执行第一个方面所述的方法。
根据本申请的第四个方面,提供一种非瞬时性计算机存储介质,存储有计算机程序,当所述计算机程序被多个处理器执行时,使得所述处理器执行第一个方面所述的方法。
根据本申请提供的调整MQTT心跳频率的方法和装置,能够根据MQTT客户端在当前网络环境的超时情况,降低或提高心跳频率,即使得MQTT客户端的心跳频率能够根据当前网络环境自适应调整。在保证MQTT客户端处于存活状态的同时,尽量降低心跳频率,从而减少流量费用和服务器费用。这样,在大大降低成本的同时减少MQTT客户端离线的概率,从而提升用户体验。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图,而并不超出本申请要求保护的范围。
图1是根据本申请实施例的MQTT客户端在频繁超时情况下的处理流程图。
图2是根据本申请实施例的MQTT客户端在稳定运行情况下的处理流程图。
图3是根据本申请第一个实施例的调整MQTT心跳频率的方法的流程图。
图4是根据本申请第二个实施例的调整MQTT心跳频率的方法的流程图。
图5是根据本申请第三个实施例的调整MQTT心跳频率的方法的流程图。
图6是根据本申请第四个实施例的调整MQTT心跳频率的方法的流程图。
图7是根据本申请第五个实施例的调整MQTT心跳频率的方法的流程图。
图8是根据本申请第六个实施例的调整MQTT心跳频率的方法的流程图。
图9是根据本申请第一个实施例的调整MQTT心跳频率的装置的示意图。
图10是根据本申请第二个实施例的调整MQTT心跳频率的装置的示意图。
图11是根据本申请第三个实施例的调整MQTT心跳频率的装置的示意图。
图12是根据本申请第四个实施例的调整MQTT心跳频率的装置的示意图。
图13是根据本申请第五个实施例的调整MQTT心跳频率的装置的示意图。
图14是根据本申请第六个实施例的调整MQTT心跳频率的装置的示意图。
图15是本申请提供的一种电子设备的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的整体思路大致为:首先为MQTT客户端设置一个初始心跳频率,并监控MQTT客户端的ping/pong行为。ping/pong 是MQTT协议用于 keepalive 的两个消息。其中,ping 是客户端发送给服务端的server,pong 是服务端对应 ping 请求的回应。ping发出去以后会立马得到 pong,间隔时间是客户端到服务端的往返时间(RTT),RTT可以简单理解为网络请求从起点到目的地然后再回到起点所花费的时长。RTT 是完成一次心跳的时间,1次 ping/pong 是 RTT,2 次 ping/pong 是心跳间隔时间,即keepavlie timeout,心跳频率= 1/心跳间隔时间。若频繁出现Keepalive超时,增加心跳频率;而若MQTT客户端长时间稳定运行,尝试找到一个不会出现Keepalive超时且具有较低频率的心跳频率。其中,MQTT客户端可以是一种物联网设备,也可以是需要MQTT服务的其他类型的设备。
图1展示了MQTT客户端在频繁超时情况下的处理流程。首先,为了判断MQTT客户端是否频繁超时,需要规定什么情况下为“频繁超时”。根据一些实施例,可以规定,出现在预设时间段内、当前心跳频率下的超时次数超过预设值的情况,可以认为MQTT客户端频繁超时。例如,初始心跳时间为T,预设值为1,可以规定在10倍初始心跳时间T内、超时次数超过1(例如为2)的情况下,认为MQTT客户端频繁超时。
在确定MQTT客户端频繁超时的情况下,可以重新设置心跳时间,例如将心跳时间设为当前心跳时间(对应于初始心跳时间)的一半,若当前心跳时间为初始心跳时间T,那么重新设置的心跳时间为T/2,这样重新设置的心跳频率为当前心跳频率的二倍。然后,在重新设置的心跳频率下,确定MQTT客户端是否频繁超时,若仍然频繁超时,可以重新设置心跳时间,将心跳时间设为当前心跳时间的一半,若当前心跳时间为T/2,那么重新设置的心跳时间为T/4,重新设置的心跳频率为当前心跳频率的二倍,之后根据重新设置的心跳频率继续判断MQTT客户端是否频繁超时。
根据上述步骤不断循环,直到MQTT客户端在最新设置的心跳频率首次不出现频繁超时,将当前心跳频率(对应最新设置的心跳频率)确定为调整后的心跳频率。当MQTT客户端再次连接服务时,将心跳频率设置为调整后的心跳频率,对应的存活时间设置为与调整后的心跳频率对应的时间。
在不断提高频率、寻找MQTT客户端首次不出现频繁超时对应的心跳频率的过程中,心跳频率的提高不是无限制的,不能超过预设的心跳频率或心跳时间的范围,例如,心跳时间预设为最短20秒,最长1800秒,那么设置的心跳频率不能高于最短心跳时间对应的频率。在设置的心跳频率高于最短心跳时间对应的频率的情况下,将设置的心跳频率确定为最短心跳时间对应的频率,并不再提高心跳频率。
图2展示了MQTT客户端在稳定运行情况下的处理流程。根据一些实施例,可以确定在MQTT客户端不出现频繁超时的情况下为稳定运行。例如,初始心跳时间为T,预设值为1,可以规定在10倍初始心跳时间T内、超时次数不超过1的情况下,认为MQTT客户端稳定运行。
在确定MQTT客户端稳定运行的情况下,可以重新设置心跳时间,例如将心跳时间设为当前心跳时间(对应于初始心跳时间)的二倍,若当前心跳时间为初始心跳时间T,那么重新设置的心跳时间为2T,这样重新设置的心跳频率为当前心跳频率的一半。然后,在重新设置的心跳频率下,确定MQTT客户端是否稳定运行,若仍然稳定运行,可以重新设置心跳时间,将心跳时间设为当前心跳时间的一半,若当前心跳时间为2T,那么重新设置的心跳时间为4T,重新设置的心跳频率为当前心跳频率的一半,之后根据重新设置的心跳频率继续判断MQTT客户端是否稳定运行。
根据上述步骤不断循环,直到MQTT客户端在最新设置的心跳频率首次出现频繁超时,将当前心跳频率的前一次的心跳频率确定为调整后的心跳频率。例如,MQTT客户端在第二次重新设置的心跳频率下首次出现频繁超时,就将第一次重新设置的心跳频率设置为调整后的心跳频率。当MQTT客户端再次连接服务时,将心跳频率设置为调整后的心跳频率,对应的存活时间设置为与调整后的心跳频率对应的时间。
在不断降低频率、寻找MQTT客户端首次出现频繁超时对应的心跳频率的过程中,心跳频率的降低不是无限制的,不能超过预设的心跳频率或心跳时间的范围,例如,心跳时间预设为最短20秒,最长1800秒,那么设置的心跳频率不能低于最长心跳时间对应的频率。在设置的心跳频率低于最长心跳时间对应的频率的情况下,将设置的心跳频率确定为最长心跳时间对应的频率,并不再降低心跳频率。
本领域技术人员可以理解的是,判断超时次数的预设时间段可以根据实际需要进行设置。关于提高心跳频率和降低心跳频率的方式,上面只是提供了一种示例,而不应当理解为对本申请的限制。本领域技术人员在上述示例的启发下,可以想到的其他提高心跳频率和降低心跳频率的方式,都属于本申请覆盖的范围。例如,可以以其他倍数提高心跳频率或降低心跳频率,可以以设定的幅度提高心跳频率或降低心跳频率,每次提高或降低心跳频率的幅度还可以不一样,等等。
在上述描述的基础上,根据本申请的一个方面,提供一种调整MQTT心跳频率的方法。如图3所示,该方法包括如下步骤。
步骤S301,检测MQTT客户端与MQTT服务端在预设时间段内、当前心跳频率下的超时次数是否超过预设值。
根据一些实施例,可以规定,出现在预设时间段内、当前心跳频率下的超时次数超过预设值的情况,认为MQTT客户端出现频繁Keepalive超时,否则,认为MQTT客户端未出现频繁Keepalive超时,即MQTT客户端处于稳定运行状态。若频繁出现Keepalive超时,增加心跳频率;而若MQTT长时间稳定运行,降低心跳频率,尝试找到一个不会出现Keepalive超时且具有较低频率的心跳频率。
步骤S302,响应于所述超时次数不超过所述预设值,以第一设定方式降低心跳频率,获得第一心跳频率。
步骤S303,在所述第一心跳频率不低于第一预设频率阈值的情况下,将所述第一心跳频率设置为当前心跳频率,返回步骤S301。
步骤S304,在所述超时次数首次超过所述预设值的情况下,将在所述当前心跳频率前一次记录的心跳频率确定为调整后的心跳频率。
在确定超时次数不超过所述预设值,即确定MQTT客户端稳定运行的情况下,可以重新设置心跳时间,例如将心跳时间设为当前心跳时间(对应于初始心跳时间)的二倍,若当前心跳时间为初始心跳时间T,那么重新设置的心跳时间为2T,这样重新设置的心跳频率为当前心跳频率的一半。然后,在重新设置的心跳频率下,确定MQTT客户端是否稳定运行,若仍然稳定运行,可以重新设置心跳时间,将心跳时间设为当前心跳时间的一半,若当前心跳时间为2T,那么重新设置的心跳时间为4T,重新设置的心跳频率为当前心跳频率的一半,之后根据重新设置的心跳频率继续判断MQTT客户端是否稳定运行。
根据上述步骤不断循环,直到MQTT客户端在最新设置的心跳频率首次出现频繁超时,将当前心跳频率的前一次的心跳频率确定为调整后的心跳频率。例如,MQTT客户端在第二次重新设置的心跳频率下首次出现频繁超时,就将第一次重新设置的心跳频率设置为调整后的心跳频率。当MQTT客户端再次连接服务时,将心跳频率设置为调整后的心跳频率,对应的存活时间设置为与调整后的心跳频率对应的时间。
图4是根据本申请第二个实施例的调整MQTT心跳频率的方法的流程图。与图3相比,图4的步骤S401至步骤S404与图3的步骤S301至步骤S304相同,不同之处在于,图4还包括如下步骤。
步骤S405,响应于所述超时次数超过所述预设值,以第二设定方式提高心跳频率,获得第二心跳频率;
步骤S406,在所述第二心跳频率不高于第二预设频率阈值的情况下,将所述第二心跳频率设置为当前心跳频率,返回步骤S401;以及
步骤S407,在所述超时次数首次不超过所述预设值的情况下,将所述当前心跳频率确定为调整后的心跳频率。
根据一些实施例,在确定MQTT客户端频繁超时的情况下,可以重新设置心跳时间,例如将心跳时间设为当前心跳时间(对应于初始心跳时间)的一半,若当前心跳时间为初始心跳时间T,那么重新设置的心跳时间为T/2,这样重新设置的心跳频率为当前心跳频率的二倍。然后,在重新设置的心跳频率下,确定MQTT客户端是否频繁超时,若仍然频繁超时,可以重新设置心跳时间,将心跳时间设为当前心跳时间的一半,若当前心跳时间为T/2,那么重新设置的心跳时间为T/4,重新设置的心跳频率为当前心跳频率的二倍,之后根据重新设置的心跳频率继续判断MQTT客户端是否频繁超时。
根据上述步骤不断循环,直到MQTT客户端在最新设置的心跳频率首次不出现频繁超时,将当前心跳频率(对应最新设置的心跳频率)确定为调整后的心跳频率。当MQTT客户端再次连接服务时,将心跳频率设置为调整后的心跳频率,对应的存活时间设置为与调整后的心跳频率对应的时间。
图5是根据本申请第三个实施例的调整MQTT心跳频率的方法的流程图。与图3相比,图5的步骤S501至步骤S504与图3的步骤S301至步骤S304相同,不同之处在于,图5还包括如下步骤。
步骤S505,在所述MQTT客户端再次连接服务时,以所述调整后的心跳频率建立所述MQTT客户端与所述MQTT服务端之间的通信。
无论是通过增加心跳频率还是降低心跳频率,当MQTT客户端再次连接服务时,将心跳频率设置为调整后的心跳频率,对应的存活时间设置为与调整后的心跳频率对应的时间,以调整后的心跳频率建立MQTT客户端与MQTT服务端之间的通信。
图6是根据本申请第四个实施例的调整MQTT心跳频率的方法的流程图。与图3相比,图6的步骤S601至步骤S604与图3的步骤S301至步骤S304相同,不同之处在于,图6还包括如下步骤。
步骤S605,在首次以所述第一设定方式降低心跳频率之前,建立所述MQTT客户端与另一MQTT服务端之间的新连接。
根据一些实施例,对于MQTT客户端未出现超时,确定降低心跳频率之前,可以将MQTT客户端与另一MQTT服务端之间建立新连接,在新连接里降低心跳频率并检测超时的情况,在这一过程中,MQTT客户端与原来的MQTT服务端之间仍然保持连接,并且以原始设置的心跳频率保持通信。如图2所示,在确定调整后的心跳频率后,当MQTT客户端再次与与原来的MQTT服务端连接服务时,将心跳频率设置为调整后的心跳频率,以调整后的心跳频率建立MQTT客户端与原来的MQTT服务端之间的通信。
图7是根据本申请第五个实施例的调整MQTT心跳频率的方法的流程图。与图3相比,图7的步骤S701至步骤S704与图3的步骤S301至步骤S304相同,不同之处在于,图7还包括如下步骤。
步骤705,在所述第一心跳频率低于所述第一预设频率阈值的情况下,将所述第一心跳频率确定为所述第一预设频率阈值。
根据一些实施例,在不断降低频率、寻找MQTT客户端首次出现频繁超时对应的心跳频率的过程中,心跳频率的降低不是无限制的,不能超过预设的心跳频率或心跳时间的范围,将预设的最低心跳频率设为第一预设频率阈值。例如,心跳时间预设为最短20秒,最长1800秒,那么设置的心跳频率不能低于最长心跳时间对应的频率。在设置的心跳频率低于预设的最低心跳频率的情况下,将设置的心跳频率确定为最长心跳时间对应的频率,并不再降低心跳频率。
图8是根据本申请第六个实施例的调整MQTT心跳频率的方法的流程图。与图4相比,图8的步骤S801至步骤S807与图4的步骤S401至步骤S407相同,不同之处在于,图8还包括如下步骤。
步骤S808,在所述第二心跳频率高于所述第二预设频率阈值的情况下,将所述第二心跳频率确定为所述第二预设频率阈值。根据一些实施例,在不断提高频率、寻找MQTT客户端首次不出现频繁超时对应的心跳频率的过程中,心跳频率的提高不是无限制的,不能超过预设的心跳频率或心跳时间的范围,将预设的最高心跳频率设为第二预设频率阈值。例如,心跳时间预设为最短20秒,最长1800秒,那么设置的心跳频率不能高于最短心跳时间对应的频率。在设置的心跳频率高于预设的最高心跳频率的情况下,将设置的心跳频率确定为最短心跳时间对应的频率,并不再提高心跳频率。
在上述描述的基础上,根据本申请的另一个方面,提供一种调整MQTT心跳频率的装置。如图9所示,该装置包括:检测模块901,心跳频率降低模块902、第一设置模块903和第一确定模块904。其中,检测模块901用于检测MQTT客户端与MQTT服务端在预设时间段内、当前心跳频率下的超时次数是否超过预设值;心跳频率降低模块902用于响应于所述超时次数不超过所述预设值,以第一设定方式降低心跳频率,获得第一心跳频率;第一设置模块903用于在所述第一心跳频率不低于第一预设频率阈值的情况下,将所述第一心跳频率设置为当前心跳频率;第一确定模块904用于在所述超时次数首次超过所述预设值的情况下,将在所述当前心跳频率前一次记录的心跳频率确定为调整后的心跳频率。
图10是根据本申请第二个实施例的调整MQTT心跳频率的装置的示意图。与图9相比,图10的模块1001至模块1004与图9的模块901至模块904相同,不同之处在于,图10还包括:心跳频率提高模块1005、第二设置模块1006和第二确定模块1007。其中,心跳频率提高模块1005用于响应于所述超时次数超过所述预设值,以第二设定方式提高心跳频率,获得第二心跳频率;第二设置模块1006用于在所述第二心跳频率不高于第二预设频率阈值的情况下,将所述第二心跳频率设置为当前心跳频率;第二确定模块1007用于在所述超时次数首次不超过所述预设值的情况下,将所述当前心跳频率确定为调整后的心跳频率。
图11是根据本申请第三个实施例的调整MQTT心跳频率的装置的示意图。与图9相比,图11的模块1101至模块1104与图9的模块901至模块904相同,不同之处在于,图11还包括:通信建立模块1105,用于在所述MQTT客户端再次连接服务时,以所述调整后的心跳频率建立所述MQTT客户端与所述MQTT服务端之间的通信。
图12是根据本申请第四个实施例的调整MQTT心跳频率的装置的示意图。与图9相比,图12的模块1201至模块1204与图9的模块901至模块904相同,不同之处在于,图12还包括:连接建立模块1205,用于在首次以所述第一设定方式降低心跳频率之前,建立所述MQTT客户端与另一MQTT服务端之间的新连接。
图13是根据本申请第五个实施例的调整MQTT心跳频率的装置的示意图。与图9相比,图13的模块1301至模块1304与图9的模块901至模块904相同,不同之处在于,图13还包括第三确定模块1305,用于在所述第一心跳频率低于所述第一预设频率阈值的情况下,将所述第一心跳频率确定为所述第一预设频率阈值。
图14是根据本申请第六个实施例的调整MQTT心跳频率的装置的示意图。与图10相比,图14的模块1401至模块1407与图10的模块1001至模块1007相同,不同之处在于,图14还包括第四确定模块1408,用于在所述第二心跳频率高于所述第二预设频率阈值的情况下,将所述第二心跳频率确定为所述第二预设频率阈值。
根据本申请提供的调整MQTT心跳频率的方法和装置,能够根据MQTT客户端在当前网络环境的超时情况,降低或提高心跳频率,即使得MQTT客户端的心跳频率能够根据当前网络环境自适应调整。在保证MQTT客户端处于存活状态的同时,尽量降低心跳频率,从而减少流量费用和服务器费用。这样,在大大降低成本的同时减少MQTT客户端离线的概率,从而提升用户体验。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性连接或其它的形式。
参阅图15,图15提供一种电子设备,包括处理器以及存储器。存储器存储有计算机指令,当计算机指令被处理器执行时,使得处理器执行所述计算机指令从而实现如图3至图8所示的方法以及细化方案。
应该理解,上述的装置实施例仅是示意性的,本发明披露的装置还可通过其它的方式实现。例如,上述实施例中所述单元/模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,多个单元、模块或组件可以结合,或者可以集成到另一个系统,或一些特征可以忽略或不执行。
另外,若无特别说明,在本发明各个实施例中的各功能单元/模块可以集成在一个单元/模块中,也可以是各个单元/模块单独物理存在,也可以两个以上单元/模块集成在一起。上述集成的单元/模块既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元/模块如果以硬件的形式实现时,该硬件可以是数字电路,模拟电路等等。硬件结构的物理实现包括但不局限于晶体管,忆阻器等等。若无特别说明,所述处理器或芯片可以是任何适当的硬件处理器,比如CPU、GPU、FPGA、DSP和ASIC等等。若无特别说明,所述片上缓存、片外内存、存储器可以是任何适当的磁存储介质或者磁光存储介质,比如,阻变式存储器RRAM(Resistive Random Access Memory)、动态随机存取存储器DRAM(Dynamic Random Access Memory)、静态随机存取存储器SRAM(Static Random-AccessMemory)、增强动态随机存取存储器EDRAM(Enhanced Dynamic Random Access Memory)、高带宽内存HBM(High-Bandwidth Memory)、混合存储立方 HMC(Hybrid Memory Cube)等等。
所述集成的单元/模块如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机电子设备(可为个人计算机、服务器或者网络电子设备等)执行本披露各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本申请实施例还提供一种非瞬时性计算机存储介质,存储有计算机程序,当所述计算机程序被多个处理器执行时,使得所述处理器执行如图3至图8所示的方法以及细化方案。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明仅用于帮助理解本申请的方法及其核心思想。同时,本领域技术人员依据本申请的思想,基于本申请的具体实施方式及应用范围上做出的改变或变形之处,都属于本申请保护的范围。综上所述,本说明书内容不应理解为对本申请的限制。
Claims (9)
1.一种调整MQTT心跳频率的方法,其特征在于,包括:
(a)检测MQTT客户端与第一MQTT服务端在预设时间段内、当前心跳频率下的超时次数是否超过预设值;
(b)响应于所述超时次数不超过所述预设值,在首次降低心跳频率之前,建立所述MQTT客户端与第二MQTT服务端之间的新连接,其中,所述第二MQTT服务端不同于所述第一MQTT服务端,在所述MQTT客户端与第二MQTT服务端之间执行如下步骤(c)-(f):
(c)检测MQTT客户端与所述第二MQTT服务端在预设时间段内、当前心跳频率下的超时次数是否超过预设值;
(d)响应于所述超时次数不超过所述预设值,以第一设定方式降低心跳频率,获得第一心跳频率;
(e)在所述第一心跳频率不低于第一预设频率阈值的情况下,将所述第一心跳频率设置为当前心跳频率,返回步骤(c);
(f)在所述超时次数首次超过所述预设值的情况下,将在所述当前心跳频率前一次记录的心跳频率确定为调整后的心跳频率;以及
以所述调整后的心跳频率执行所述MQTT客户端与所述第一MQTT服务端之间的通信。
2.如权利要求1所述的方法,其特征在于,还包括:
(g)响应于所述超时次数超过所述预设值,以第二设定方式提高心跳频率,获得第二心跳频率;
(h)在所述第二心跳频率不高于第二预设频率阈值的情况下,将所述第二心跳频率设置为当前心跳频率,返回步骤(a);以及
(i)在所述超时次数首次不超过所述预设值的情况下,将所述当前心跳频率确定为调整后的心跳频率。
3.如权利要求1所述的方法,其特征在于,还包括:
在所述第一心跳频率低于所述第一预设频率阈值的情况下,将所述第一心跳频率确定为所述第一预设频率阈值。
4.如权利要求2所述的方法,其特征在于,还包括:
在所述第二心跳频率高于所述第二预设频率阈值的情况下,将所述第二心跳频率确定为所述第二预设频率阈值。
5.如权利要求1至4任一项所述的方法,其特征在于,还包括:
在所述MQTT客户端再次连接服务时,以所述调整后的心跳频率建立所述MQTT客户端与所述MQTT服务端之间的通信。
6.如权利要求1至4任一项所述的方法,其特征在于,所述第一设定方式包括以设定的倍率降低心跳频率,所述第二设定方式包括以设定的倍率提高心跳频率。
7.一种调整MQTT心跳频率的装置,其特征在于,包括:
第一检测模块,用于检测MQTT客户端与第一MQTT服务端在预设时间段内、当前心跳频率下的超时次数是否超过预设值;
连接建立模块,用于响应于所述超时次数不超过所述预设值,在首次降低心跳频率之前,建立所述MQTT客户端与第二MQTT服务端之间的新连接,其中,所述第二MQTT服务端不同于所述第一MQTT服务端;
第二检测模块,用于检测所述MQTT客户端与所述第二MQTT服务端在预设时间段内、当前心跳频率下的超时次数是否超过预设值;
心跳频率降低模块,用于响应于所述超时次数不超过所述预设值,以第一设定方式降低心跳频率,获得第一心跳频率;
第一设置模块,用于在所述第一心跳频率不低于第一预设频率阈值的情况下,将所述第一心跳频率设置为当前心跳频率;
第一确定模块,用于在所述超时次数首次超过所述预设值的情况下,将在所述当前心跳频率前一次记录的心跳频率确定为调整后的心跳频率;以及
通信建立模块,用于以所述调整后的心跳频率执行所述MQTT客户端与所述第一MQTT服务端之间的通信。
8.一种电子设备,其特征在于,包括存储器和处理器,所述存储器上存储有计算机程序,所述处理器在执行所述存储器上的计算机程序时实现权利要求1至6中任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311586371.8A CN117294750B (zh) | 2023-11-27 | 2023-11-27 | 调整mqtt心跳频率的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311586371.8A CN117294750B (zh) | 2023-11-27 | 2023-11-27 | 调整mqtt心跳频率的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117294750A CN117294750A (zh) | 2023-12-26 |
CN117294750B true CN117294750B (zh) | 2024-03-01 |
Family
ID=89244788
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311586371.8A Active CN117294750B (zh) | 2023-11-27 | 2023-11-27 | 调整mqtt心跳频率的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117294750B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105578515A (zh) * | 2014-10-15 | 2016-05-11 | 上海点艺信息技术有限公司 | 一种心跳频率参数的维护方法及服务器 |
CN105610913A (zh) * | 2015-12-22 | 2016-05-25 | 用友网络科技股份有限公司 | 通信网络中长连接的心跳保活方法及装置 |
JP2017068309A (ja) * | 2015-09-28 | 2017-04-06 | 日本電気株式会社 | 情報処理装置、ダウン判定方法、クラスタシステム、及びプログラム |
CN108173709A (zh) * | 2017-12-19 | 2018-06-15 | 广州视源电子科技股份有限公司 | 保活长连接方法、装置、终端设备及存储介质 |
CN109981384A (zh) * | 2017-12-27 | 2019-07-05 | 航天信息股份有限公司 | 一种动态调整心跳周期的系统和方法 |
CN111031598A (zh) * | 2020-01-08 | 2020-04-17 | Oppo广东移动通信有限公司 | 网络通信控制方法、装置、通信设备以及存储介质 |
CN111343045A (zh) * | 2020-02-14 | 2020-06-26 | 青岛聚看云科技有限公司 | 调整心跳频率的方法及装置 |
CN112987904A (zh) * | 2019-12-18 | 2021-06-18 | 成都鼎桥通信技术有限公司 | 一种心跳控制方法和装置 |
CN114025416A (zh) * | 2021-10-28 | 2022-02-08 | 广东佳米科技有限公司 | 一种移动终端和服务器探测间隔的动态调整方法及其系统 |
CN114268565A (zh) * | 2021-12-22 | 2022-04-01 | 深圳优美创新科技有限公司 | 终端设备及其心跳包发送间隔的探测方法、存储介质 |
WO2022105611A1 (zh) * | 2021-06-29 | 2022-05-27 | 聚好看科技股份有限公司 | 一种心跳超时检测方法、服务器及电子设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7523197B2 (en) * | 2006-03-09 | 2009-04-21 | International Business Machines Corporation | Method for IP address discovery in rapidly changing network environment |
CN104144159B (zh) * | 2014-06-26 | 2016-04-13 | 腾讯科技(深圳)有限公司 | 智能心跳保活方法及智能心跳保活系统 |
-
2023
- 2023-11-27 CN CN202311586371.8A patent/CN117294750B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105578515A (zh) * | 2014-10-15 | 2016-05-11 | 上海点艺信息技术有限公司 | 一种心跳频率参数的维护方法及服务器 |
JP2017068309A (ja) * | 2015-09-28 | 2017-04-06 | 日本電気株式会社 | 情報処理装置、ダウン判定方法、クラスタシステム、及びプログラム |
CN105610913A (zh) * | 2015-12-22 | 2016-05-25 | 用友网络科技股份有限公司 | 通信网络中长连接的心跳保活方法及装置 |
CN108173709A (zh) * | 2017-12-19 | 2018-06-15 | 广州视源电子科技股份有限公司 | 保活长连接方法、装置、终端设备及存储介质 |
CN109981384A (zh) * | 2017-12-27 | 2019-07-05 | 航天信息股份有限公司 | 一种动态调整心跳周期的系统和方法 |
CN112987904A (zh) * | 2019-12-18 | 2021-06-18 | 成都鼎桥通信技术有限公司 | 一种心跳控制方法和装置 |
CN111031598A (zh) * | 2020-01-08 | 2020-04-17 | Oppo广东移动通信有限公司 | 网络通信控制方法、装置、通信设备以及存储介质 |
CN111343045A (zh) * | 2020-02-14 | 2020-06-26 | 青岛聚看云科技有限公司 | 调整心跳频率的方法及装置 |
WO2022105611A1 (zh) * | 2021-06-29 | 2022-05-27 | 聚好看科技股份有限公司 | 一种心跳超时检测方法、服务器及电子设备 |
CN114025416A (zh) * | 2021-10-28 | 2022-02-08 | 广东佳米科技有限公司 | 一种移动终端和服务器探测间隔的动态调整方法及其系统 |
CN114268565A (zh) * | 2021-12-22 | 2022-04-01 | 深圳优美创新科技有限公司 | 终端设备及其心跳包发送间隔的探测方法、存储介质 |
Non-Patent Citations (2)
Title |
---|
Rongjun Qian.WT-Based Data-Length-Variation Technique for Fast Heart Rate Detection.《2018 Progress in Electromagnetics Research Symposium (PIERS-Toyama)》.2019,全文. * |
栗永胜 ; 崔佳冬 ; 秦会斌 ; .一种自适应心跳间隔保活TCP连接的方法.计算机应用与软件.2018,(01),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN117294750A (zh) | 2023-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108834203B (zh) | 网络切换方法、装置、终端及存储介质 | |
EP1876758B1 (en) | Method for probing the peer-to-peer quality of service (QOS) | |
US7779282B2 (en) | Maintaining network connectivity while operating in low power mode | |
US20170150401A1 (en) | Traffic offloading method and apparatus | |
US20160198021A1 (en) | Dynamic protocol switching | |
US9237460B2 (en) | Traffic control method and device | |
US20090147698A1 (en) | Network automatic discovery method and system | |
JP6337105B2 (ja) | マルチメディア・コンテンツを受信するように構成されたクライアント端末のダウンロード動作を適応させる方法および対応する端末 | |
US9680948B2 (en) | System and method for device failure notification | |
US11307945B2 (en) | Methods and apparatus for detecting, eliminating and/or mitigating split brain occurrences in high availability systems | |
US10516599B1 (en) | Link priority for loop-protect | |
CN105635248A (zh) | 一种tcp连接资源的释放方法及系统 | |
WO2018077100A1 (zh) | Tcp拥塞窗口的确定方法和装置 | |
CN109831536B (zh) | 一种前端负载均衡服务降级系统及方法 | |
CN111355667B (zh) | 数据传输方法、装置、系统及计算机可读存储介质 | |
US20140006630A1 (en) | Session initiation protocol (sip) for message throttling | |
US11902157B2 (en) | High-availability switchover based on traffic metrics | |
US20070260676A1 (en) | Method Of Selecting One Server Out Of A Server Set | |
CN117294750B (zh) | 调整mqtt心跳频率的方法和装置 | |
CN102130811A (zh) | 一种通过vpn接入应用服务器的方法及终端 | |
US10567262B1 (en) | Dynamic server device monitoring | |
US20230198881A1 (en) | Method and device for improving link aggregation protocol timeout | |
US10958712B2 (en) | Enhanced reliability for information services | |
CN116647476A (zh) | 网络管理方法、装置、计算机设备、存储介质和程序产品 | |
CN110661836B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |