CN115914246A - 离线消息的点对点通信方法、系统、装置及存储介质 - Google Patents
离线消息的点对点通信方法、系统、装置及存储介质 Download PDFInfo
- Publication number
- CN115914246A CN115914246A CN202211223051.1A CN202211223051A CN115914246A CN 115914246 A CN115914246 A CN 115914246A CN 202211223051 A CN202211223051 A CN 202211223051A CN 115914246 A CN115914246 A CN 115914246A
- Authority
- CN
- China
- Prior art keywords
- message
- offline
- message data
- target node
- target
- 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
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000004891 communication Methods 0.000 title claims abstract description 33
- 230000002085 persistent effect Effects 0.000 claims abstract description 8
- 238000009792 diffusion process Methods 0.000 abstract description 5
- 230000006870 function Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 241000255925 Diptera Species 0.000 description 1
- 238000006424 Flood reaction Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- 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/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种离线消息的点对点通信方法、系统、装置及存储介质,方法包括:根据MQTT协议,建立发布者终端与Broker集群中的第一目标节点的第一长连接;基于第一长连接,通过发布者终端向第一目标节点发送消息数据;当第一目标节点存在与消息数据关联的第一订阅请求,通过第一目标节点向订阅者终端发送消息数据;否则,将消息数据持久化到目标数据库,保存为离线消息,和将消息数据在Broker集群进行扩散处理。本发明通过Broker实现MQTT Broker集群部署,实现消息的直接推送,以及通过目标数据库对消息数据进行持久化的离线消息保存,实现离线消息的扩散,能够避免消息重复推送的问题,并且不会带来额外的内存资源开销,可广泛应用于通信技术领域。
Description
技术领域
本发明涉及通信技术领域,尤其是离线消息的点对点通信方法、系统、装置及存储介质。
背景技术
MQTT协议作为一种低开销、低带宽占用的即时通讯协议,在物联网、小型设备、移动应用等方面有较广泛的应用,它是基于发布/订阅模式设计的,发布者发布消息到指定topic以后,所有订阅该topic的订阅都能去接收该消息。
在部分应用场景下,会有进行点对点通信的需求,消息发布者只需要把消息精准地推送到一个指定消息订阅者即可,比如手机app消息精准推送等。对于这类场景,通过合理地设计topic订阅规范,让每个消息终端都订阅到唯一的一个topic,就可以达到点对点通信的效果。而在点对点通信场景中,常常会伴随着离线消息处理机制的需求,当消息的目标终端不在线时,消息发布者不希望这些消息就此丢失,而是希望在消息有效期内,如果目标终端上线了就及时再将所有此类消息进行推送,并且只推送一次。虽然标准的MQTT协议提供了保留消息和会话保持的特性来应对订阅者离线的场景,但是这两个特性却并不能很好满足点对点通信中的离线消息的需要。
目前有许多的MQTT Broker实现,比如HiveMQ、EMQ、mosquito等等,这些都是基于标准MQTT协议的实现,在将它们应用于需要离线消息处理机制的点对点通信场景时,会遇到以下问题:
(1)如果开启使用标准MQTT提供的保留消息特性,那么一个topic只能保存一条消息,并且在有效期内订阅者每次上线都会重复收到该消息。在实际应用场景中就可能会遇到消息丢失和重复接收的问题。
(2)如果开启使用标准MQTT提供的会话保持特性,那么必须在会话保持的有效期内离线消息才会生效,而且如果会话保持的有效期设置的比较大的话,会在服务器内存中保存过多的会话,占用额外内存。在实际应用场景中就可能会遇到具体消息终端的上一次在线时间过久就会失效,以及Broker服务器内存资源开销过大的问题。
发明内容
有鉴于此,本发明实施例提供了一种检测精度高,部署成本低的,一种离线消息的点对点通信方法、系统、装置及存储介质。
一方面,本发明实施例提供了一种离线消息的点对点通信方法,包括:
根据MQTT协议,建立发布者终端与Broker集群中的第一目标节点的第一长连接;
基于所述第一长连接,通过发布者终端向所述第一目标节点发送消息数据;
当所述第一目标节点存在与所述消息数据关联的第一订阅请求,通过所述第一目标节点向订阅者终端发送所述消息数据;否则,将所述消息数据持久化到目标数据库,保存为离线消息,和将所述消息数据在所述Broker集群进行扩散处理。
可选地,还包括:
根据MQTT协议,建立订阅者终端与Broker集群中的第一目标节点的第二长连接;
基于所述第二长连接,通过所述订阅者终端向所述第一目标节点发送第一订阅请求;
其中,所述第一订阅请求与所述消息数据关联。
可选地,还包括:
根据MQTT协议,建立订阅者终端与Broker集群中的第二目标节点的第三长连接;
基于所述第三长连接,通过所述订阅者终端向所述第二目标节点发送第二订阅请求;
其中,所述第二订阅请求与所述离线消息关联。
可选地,所述将所述消息数据在所述Broker集群进行扩散处理,包括:
将所述消息数据扩散到所述Broker集群中的其余节点;
基于所述第二订阅请求,通过所述目标数据库向订阅者终端发送所述离线消息。
可选地,所述基于所述第二订阅请求,通过所述目标数据库向订阅者终端发送所述离线消息,包括:
根据所述第二订阅请求,对所述目标数据库进行检索查询,匹配到所述离线消息;
将所述离线消息发送到所述订阅者终端,对所述目标数据库中的所述离线消息进行清除处理。
可选地,所述将所述消息数据持久化到目标数据库,保存为离线消息,包括:
对所述消息数据设置预设期限;
将设置预设期限的消息数据持久化到目标数据库,保存为离线消息。
可选地,还包括:
根据所述预设期限,对所述目标数据库中的所述离线消息进行轮询扫描;
当所述离线消息的有效期达到所述预设期限,对所述目标数据库中的所述离线消息进行删除处理。
第二方面,本发明实施例提供了一种离线消息的点对点通信系统,包括:
第一模块,用于根据MQTT协议,建立发布者终端与Broker集群中的第一目标节点的第一长连接;
第二模块,用于基于所述第一长连接,通过发布者终端向所述第一目标节点发送消息数据;
第三模块,用于当所述第一目标节点存在与所述消息数据关联的第一订阅请求,通过所述第一目标节点向订阅者终端发送所述消息数据;否则,将所述消息数据持久化到目标数据库,保存为离线消息,和将所述消息数据在所述Broker集群进行扩散处理。
另一方面,本发明实施例提供了一种离线消息的点对点通信装置,包括处理器以及存储器;
所述存储器用于存储程序;
所述处理器执行所述程序实现如前面所述的方法。
另一方面,本发明实施例提供了一种计算机可读存储介质,所述存储介质存储有程序,所述程序被处理器执行实现如前面所述的方法。
本发明实施例还公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器可以从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前面的方法。
本发明的实施例首先根据MQTT协议,建立发布者终端与Broker集群中的第一目标节点的第一长连接;随后基于所述第一长连接,通过发布者终端向所述第一目标节点发送消息数据;然后当所述第一目标节点存在与所述消息数据关联的第一订阅请求,通过所述第一目标节点向订阅者终端发送所述消息数据;否则,将所述消息数据持久化到目标数据库,保存为离线消息,和将所述消息数据在所述Broker集群进行扩散处理。本发明通过Broker实现MQTT Broker集群部署,实现消息的直接推送,以及通过目标数据库对消息数据进行持久化的离线消息保存,实现离线消息的扩散,能够避免消息重复推送的问题,并且不会带来额外的内存资源开销。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的离线消息的点对点通信方法的整体步骤流程示意图;
图2为本发明实施例提供的离线消息的点对点通信方法的一种实施情形示意图;
图3为本发明实施例提供的离线消息的点对点通信方法的另一种实施情形示意图;
图4为本发明实施例提供的离线消息的点对点通信方法的另一种实施情形示意图;
图5为本发明实施例提供的离线消息的点对点通信系统的示意图;
图6为本发明实施例提供的离线消息的点对点通信装置的示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
为了使本申请内容及技术方案更加清楚明白,对相关术语及含义进行说明:
MQTT:MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的轻量级通讯协议,该协议构建于TCP/IP协议上。
点对点通信:本文中的点对点通信是指一条通信链路中有且仅有一个发布者和一个订阅者。
离线消息:本文中的离线消息是指消息发布时没有相应的消息订阅者在线,这情况下该消息会进行持久化,在此后的一定时间范围内,如果消息订阅者上线就会再将该消息推送给该订阅者。
MQTT Broker:本文中MQTT Broker是指MQTT消息服务器,负责接收来自客户端的网络连接,并处理客户端的订阅、消息发布等请求,同时也会将客户端发布的消息转发给其他订阅者。
针对现有技术存在的问题,一方面,本发明提供了一种离线消息的点对点通信方法,如图1所示,方法包括以下步骤:
S100、根据MQTT协议,建立发布者终端与Broker集群中的第一目标节点的第一长连接;
S200、基于第一长连接,通过发布者终端向第一目标节点发送消息数据;
S300、当第一目标节点存在与消息数据关联的第一订阅请求,通过第一目标节点向订阅者终端发送消息数据;否则,将消息数据持久化到目标数据库,保存为离线消息,和将消息数据在Broker集群进行扩散处理;
一些实施例中,还包括:根据MQTT协议,建立订阅者终端与Broker集群中的第一目标节点的第二长连接;基于第二长连接,通过订阅者终端向第一目标节点发送第一订阅请求;其中,第一订阅请求与消息数据关联。
一些实施例中,还包括:根据MQTT协议,建立订阅者终端与Broker集群中的第二目标节点的第三长连接;基于第三长连接,通过订阅者终端向第二目标节点发送第二订阅请求;其中,第二订阅请求与离线消息关联。
需要说明的是,在步骤S300的将消息数据在Broker集群进行扩散处理,包括:将消息数据扩散到Broker集群中的其余节点;基于第二订阅请求,通过目标数据库向订阅者终端发送离线消息。
还需要说明的是,基于第二订阅请求,通过目标数据库向订阅者终端发送离线消息,包括:根据第二订阅请求,对目标数据库进行检索查询,匹配到离线消息;将离线消息发送到订阅者终端,对目标数据库中的离线消息进行清除处理。
一些实施例中,在步骤S300的将消息数据持久化到目标数据库,保存为离线消息,包括:对消息数据设置预设期限;将设置预设期限的消息数据持久化到目标数据库,保存为离线消息。需要说明的是,一些实施例中,还包括:根据预设期限,对目标数据库中的离线消息进行轮询扫描;当离线消息的有效期达到预设期限,对目标数据库中的离线消息进行删除处理。
下面详细描述本发明的离线消息的点对点通信的实现原理,下述是对本发明技术方案的解释而不是限定:
基于MQTT Broker集群部署,消息发布过程实现流程为:发布者(即发布者终端)和订阅者(即订阅者终端)分别与Broker集群中的任一节点基于MQTT协议建立长连接,然后订阅者向所连接的Broker节点发送定订阅请求,该Broker节点接收到以后会将其订阅的topic记录在内存中。进而发布者向所连接的Broker节点(如第一目标节点)发布消息,该Broker节点接收到消息以后,先检查本地内存中是否存在相应topic的订阅信息。如果存在,说明订阅者连接在该节点(即第一目标节点)上,则直接向对应订阅者进行消息推送,消息推送过程就此完成。如果不存在,说明订阅者没有连接在该节点上(表示订阅者连接于Broker集群中除第一目标节点的其它节点,如第二目标节点上),则先将该消息设置有效期(即设置预设期限)并持久化到数据库(内设定时任务,轮询扫描数据库中的离线消息数据是否达到有效期,如果当前时间超过了有效期就删除该数据),保存为离线消息,该步骤可以异步进行,然后将该消息扩散到其他Broker节点。其他Broker节点(Broker集群中除第一目标节点的其余节点,包括第二目标节点)接收到该消息以后,同样先通过订阅请求检查所有连接在本节点的客户端中是否有相应的订阅者。如果存在,则向对应订阅者进行消息推送,然后清除掉数据库中对应的离线消息,消息推送过程完成。此外,还需要说明的是,如果其它节点均不存在相关联的订阅请求,则不进行任何操作。
对应的,消息接收过程的实现流程为:客户端(即订阅者终端)基于MQTT协议连接到任意一个Broker节点(如第二目标节点)进行上线,并向所连接的Broker节点发送定订阅请求,订阅相应的topic,然后该Broker会使用这些topic去数据库中对离线消息的topic字段进行检索查询。如果存在检索结果,则将所有满足条件的离线消息推送给该订阅者,然后清除掉数据库中这些已处理完成的离线消息。如果不存在检索结果,则不做额外操作。
需要说明的是,上述的第一目标节点和第二目标节点并非对Broker集群中节点的具体限定,其中第一目标节点用于表示与发布者终端连接的任意节点,而第二目标节点用于表示未与发布者终端连接的任意节点。
为了更加清晰的说明本发明的目的与内容,下面结合具体实施例及附图对本发明作进一步的描述,但本发明的实施方式不限于此。
MQTT Broker部署方式为集群模式。
消息下发:
(1)业务平台和手机APP应用分别与Broker集群中的任一节点基于MQTT协议建立TCP长连接,然后手机APP应用订阅业务约定的topic。
(2)业务平台发送一条指定topic(带业务特性,只有目标APP应用会去订阅)的消息到所连接的Broker节点(称其为Broker1)。
(3)如图2所示,如果目标APP应用在线且连接的节点也是Broker1,那么就直接将消息推送给该APP应用。
(4)否则,Broker1将该消息保存至Redis数据库,并设置过期时间,然后将该消息扩散至其他所有的Broker节点(假设存在两个其他节点,Broker2和Broker3)。
(5)如图3所示,如果目标APP应用在线且连接的节点是Broker3(Broker2是同一情形),则Broker3接收到Broker1扩散过来的消息以后,将该消息推送给这个APP应用,然后清除Redis上对应的离线消息。Broker2由于没找到订阅者所以不做任何处理。
(6)如图4所示,如果目标APP应用不在线,即没有连接到任何Broker节点,Broker2和Broker3收到扩散的消息以后不做任何处理,此时离线消息被成功保存在了Redis中。
APP应用上线:
(1)APP应用使用MQTT协议与Broker集群中任一节点建立TCP长连接完成上线,并订阅业务约定的topic。
(2)所连接的Broker查询Redis,如果查询到该topic对应的离线消息,则推送给该APP应用并清除掉Redis上的这部分离线消息数据;否则不处理。
另一方面,参照图5,本发明实施例提供了一种离线消息的点对点通信系统400,包括第一模块410、第二模块420、第三模块430;第一模块410,用于根据MQTT协议,建立发布者终端与Broker集群中的第一目标节点的第一长连接;第二模块420,用于基于第一长连接,通过发布者终端向第一目标节点发送消息数据;第三模块430,用于当第一目标节点存在与消息数据关联的第一订阅请求,通过第一目标节点向订阅者终端发送消息数据;否则,将消息数据持久化到目标数据库,保存为离线消息,和将消息数据在Broker集群进行扩散处理。
本发明方法实施例的内容均适用于本系统实施例,本系统实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法达到的有益效果也相同。
参照图6,本发明实施例的另一方面还提供了一种离线消息的点对点通信装置500,包括处理器510以及存储器520;存储器510用于存储程序;处理器520执行程序实现如前面所述的方法。
本发明方法实施例的内容均适用于本装置实施例,本装置实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法达到的有益效果也相同。
本发明实施例的另一方面还提供了一种计算机可读存储介质,所述存储介质存储有程序,所述程序被处理器执行实现如前面所述的方法。
本发明方法实施例的内容均适用于本计算机可读存储介质实施例,本计算机可读存储介质实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法达到的有益效果也相同。
本发明实施例还公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器可以从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前面的方法。
综上所述,本发明的一种离线消息的点对点通信方法、系统、装置及存储介质,实现了一种离线消息处理机制,该机制可以保证在消息终端离线期间发布给该消息终端的所有消息都被持久化保存,如果在消息有效期内该消息终端上线,就会再将其进行推送,该机制不依赖于消息终端的上一次在线时间,也不会产生重复推送问题,并且不会带来额外的内存资源开销。此外,本发明还可以支持MQTT Broker集群部署。
在一些可选择的实施例中,在方框图中提到的功能/操作可以不按照操作示图提到的顺序发生。例如,取决于所涉及的功能/操作,连续示出的两个方框实际上可以被大体上同时地执行或所述方框有时能以相反顺序被执行。此外,在本发明的流程图中所呈现和描述的实施例以示例的方式被提供,目的在于提供对技术更全面的理解。所公开的方法不限于本文所呈现的操作和逻辑流程。可选择的实施例是可预期的,其中各种操作的顺序被改变以及其中被描述为较大操作的一部分的子操作被独立地执行。
此外,虽然在功能性模块的背景下描述了本发明,但应当理解的是,除非另有相反说明,所述的功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。还可以理解的是,有关每个模块的实际实现的详细讨论对于理解本发明是不必要的。更确切地说,考虑到在本文中公开的装置中各种功能模块的属性、功能和内部关系的情况下,在工程师的常规技术内将会了解该模块的实际实现。因此,本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本发明。还可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本发明的范围,本发明的范围由所附权利要求书及其等同方案的全部范围来决定。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
以上是对本发明的较佳实施进行了具体说明,但本发明并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
Claims (10)
1.一种离线消息的点对点通信方法,其特征在于,包括:
根据MQTT协议,建立发布者终端与Broker集群中的第一目标节点的第一长连接;
基于所述第一长连接,通过发布者终端向所述第一目标节点发送消息数据;
当所述第一目标节点存在与所述消息数据关联的第一订阅请求,通过所述第一目标节点向订阅者终端发送所述消息数据;否则,将所述消息数据持久化到目标数据库,保存为离线消息,和将所述消息数据在所述Broker集群进行扩散处理。
2.根据权利要求1所述的一种离线消息的点对点通信方法,其特征在于,还包括:
根据MQTT协议,建立订阅者终端与Broker集群中的第一目标节点的第二长连接;
基于所述第二长连接,通过所述订阅者终端向所述第一目标节点发送第一订阅请求;
其中,所述第一订阅请求与所述消息数据关联。
3.根据权利要求1所述的一种离线消息的点对点通信方法,其特征在于,还包括:
根据MQTT协议,建立订阅者终端与Broker集群中的第二目标节点的第三长连接;
基于所述第三长连接,通过所述订阅者终端向所述第二目标节点发送第二订阅请求;
其中,所述第二订阅请求与所述离线消息关联。
4.根据权利要求3所述的一种离线消息的点对点通信方法,其特征在于,所述将所述消息数据在所述Broker集群进行扩散处理,包括:
将所述消息数据扩散到所述Broker集群中的其余节点;
基于所述第二订阅请求,通过所述目标数据库向订阅者终端发送所述离线消息。
5.根据权利要求4所述的一种离线消息的点对点通信方法,其特征在于,所述基于所述第二订阅请求,通过所述目标数据库向订阅者终端发送所述离线消息,包括:
根据所述第二订阅请求,对所述目标数据库进行检索查询,匹配到所述离线消息;
将所述离线消息发送到所述订阅者终端,对所述目标数据库中的所述离线消息进行清除处理。
6.根据权利要求1所述的一种离线消息的点对点通信方法,其特征在于,所述将所述消息数据持久化到目标数据库,保存为离线消息,包括:
对所述消息数据设置预设期限;
将设置预设期限的消息数据持久化到目标数据库,保存为离线消息。
7.根据权利要求6所述的一种离线消息的点对点通信方法,其特征在于,还包括:
根据所述预设期限,对所述目标数据库中的所述离线消息进行轮询扫描;
当所述离线消息的有效期达到所述预设期限,对所述目标数据库中的所述离线消息进行删除处理。
8.一种离线消息的点对点通信系统,其特征在于,包括:
第一模块,用于根据MQTT协议,建立发布者终端与Broker集群中的第一目标节点的第一长连接;
第二模块,用于基于所述第一长连接,通过发布者终端向所述第一目标节点发送消息数据;
第三模块,用于当所述第一目标节点存在与所述消息数据关联的第一订阅请求,通过所述第一目标节点向订阅者终端发送所述消息数据;否则,将所述消息数据持久化到目标数据库,保存为离线消息,和将所述消息数据在所述Broker集群进行扩散处理。
9.一种离线消息的点对点通信装置,其特征在于,包括处理器以及存储器;
所述存储器用于存储程序;
所述处理器执行所述程序实现如权利要求1至7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有程序,所述程序被处理器执行实现如权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211223051.1A CN115914246A (zh) | 2022-10-08 | 2022-10-08 | 离线消息的点对点通信方法、系统、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211223051.1A CN115914246A (zh) | 2022-10-08 | 2022-10-08 | 离线消息的点对点通信方法、系统、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115914246A true CN115914246A (zh) | 2023-04-04 |
Family
ID=86475031
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211223051.1A Pending CN115914246A (zh) | 2022-10-08 | 2022-10-08 | 离线消息的点对点通信方法、系统、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115914246A (zh) |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107592351A (zh) * | 2017-09-06 | 2018-01-16 | 北京锐安科技有限公司 | 一种基于Redis的多用户发布订阅方法及系统 |
CN108600330A (zh) * | 2018-03-29 | 2018-09-28 | 努比亚技术有限公司 | 离线消息推送方法、设备及计算机可读存储介质 |
CN110262807A (zh) * | 2019-06-20 | 2019-09-20 | 北京百度网讯科技有限公司 | 集群创建进度日志采集系统、方法和装置 |
CN110336736A (zh) * | 2019-05-27 | 2019-10-15 | 四川长虹电器股份有限公司 | 基于mqtt服务器集群实现共享订阅的方法 |
CN110557423A (zh) * | 2018-06-04 | 2019-12-10 | 珠海全志科技股份有限公司 | 一种消息推送方法及系统 |
CN111083193A (zh) * | 2019-11-11 | 2020-04-28 | 厦门网宿有限公司 | 长连接消息发送方法、服务器及存储介质 |
CN111221663A (zh) * | 2019-11-21 | 2020-06-02 | 苏州浪潮智能科技有限公司 | 一种消息数据处理方法、装置、设备及可读存储介质 |
CN111935028A (zh) * | 2020-09-21 | 2020-11-13 | 浙江百应科技有限公司 | 一种基于路由模式、mqtt协议的iot集群通讯方法 |
CN113014670A (zh) * | 2021-03-25 | 2021-06-22 | 上海盛付通电子支付服务有限公司 | 一种用于推送订单信息的方法、设备、介质及程序产品 |
CN113157449A (zh) * | 2021-04-16 | 2021-07-23 | 上海寰果信息科技有限公司 | 基于mqtt的实时流数据分析处理方法 |
CN113242272A (zh) * | 2021-03-24 | 2021-08-10 | 中国雄安集团数字城市科技有限公司 | 基于mqtt服务集群的会话处理方法及系统 |
CN113641511A (zh) * | 2021-07-09 | 2021-11-12 | 阿里云计算有限公司 | 一种消息通信方法和装置 |
CN113965620A (zh) * | 2021-09-24 | 2022-01-21 | 国网河南省电力公司信息通信公司 | 一种基于mqtt和redis的消息推送系统 |
CN114385372A (zh) * | 2020-10-19 | 2022-04-22 | 中移(苏州)软件技术有限公司 | 一种消息处理方法、装置及存储介质 |
CN114422591A (zh) * | 2021-12-22 | 2022-04-29 | 广州市玄武无线科技股份有限公司 | 点对点通信方法、数据通信系统、计算机设备、存储介质 |
-
2022
- 2022-10-08 CN CN202211223051.1A patent/CN115914246A/zh active Pending
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107592351A (zh) * | 2017-09-06 | 2018-01-16 | 北京锐安科技有限公司 | 一种基于Redis的多用户发布订阅方法及系统 |
CN108600330A (zh) * | 2018-03-29 | 2018-09-28 | 努比亚技术有限公司 | 离线消息推送方法、设备及计算机可读存储介质 |
CN110557423A (zh) * | 2018-06-04 | 2019-12-10 | 珠海全志科技股份有限公司 | 一种消息推送方法及系统 |
CN110336736A (zh) * | 2019-05-27 | 2019-10-15 | 四川长虹电器股份有限公司 | 基于mqtt服务器集群实现共享订阅的方法 |
CN110262807A (zh) * | 2019-06-20 | 2019-09-20 | 北京百度网讯科技有限公司 | 集群创建进度日志采集系统、方法和装置 |
CN111083193A (zh) * | 2019-11-11 | 2020-04-28 | 厦门网宿有限公司 | 长连接消息发送方法、服务器及存储介质 |
CN111221663A (zh) * | 2019-11-21 | 2020-06-02 | 苏州浪潮智能科技有限公司 | 一种消息数据处理方法、装置、设备及可读存储介质 |
CN111935028A (zh) * | 2020-09-21 | 2020-11-13 | 浙江百应科技有限公司 | 一种基于路由模式、mqtt协议的iot集群通讯方法 |
CN114385372A (zh) * | 2020-10-19 | 2022-04-22 | 中移(苏州)软件技术有限公司 | 一种消息处理方法、装置及存储介质 |
CN113242272A (zh) * | 2021-03-24 | 2021-08-10 | 中国雄安集团数字城市科技有限公司 | 基于mqtt服务集群的会话处理方法及系统 |
CN113014670A (zh) * | 2021-03-25 | 2021-06-22 | 上海盛付通电子支付服务有限公司 | 一种用于推送订单信息的方法、设备、介质及程序产品 |
CN113157449A (zh) * | 2021-04-16 | 2021-07-23 | 上海寰果信息科技有限公司 | 基于mqtt的实时流数据分析处理方法 |
CN113641511A (zh) * | 2021-07-09 | 2021-11-12 | 阿里云计算有限公司 | 一种消息通信方法和装置 |
CN113965620A (zh) * | 2021-09-24 | 2022-01-21 | 国网河南省电力公司信息通信公司 | 一种基于mqtt和redis的消息推送系统 |
CN114422591A (zh) * | 2021-12-22 | 2022-04-29 | 广州市玄武无线科技股份有限公司 | 点对点通信方法、数据通信系统、计算机设备、存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1021021B1 (en) | Method and apparatus for providing awareness-triggered push | |
CN101668031B (zh) | 一种消息处理方法及系统 | |
US7761522B2 (en) | System and method for providing asynchronous notifications using synchronous data sources | |
CN108768826A (zh) | 基于MQTT和Kafka高并发场景下的消息路由方法 | |
US7496602B2 (en) | Optimizing communication using scalable peer groups | |
US7640299B2 (en) | Optimizing communication using scaleable peer groups | |
CN100407627C (zh) | 一种实现端到端文件共享的系统及方法 | |
US20050228895A1 (en) | Method, Web service gateway (WSG) for presence, and presence server for presence information filtering and retrieval | |
US20030093462A1 (en) | Method and apparatus for a distributed server tree | |
US20070005711A1 (en) | System and method for building instant messaging applications | |
CN112769671B (zh) | 消息处理方法、装置与系统 | |
CN107517227B (zh) | 用于分布式一致性系统的会话实现方法以及装置 | |
CN111917687A (zh) | 一种循环推送提醒消息的方法和装置 | |
CN110536359B (zh) | 网络切片创建方法、装置、设备及存储介质 | |
CN112134915A (zh) | 一种应用层协议解耦合的通用网络处理系统 | |
CN113055193A (zh) | 一种数据多播传输方法、装置、设备及存储介质 | |
CN115914246A (zh) | 离线消息的点对点通信方法、系统、装置及存储介质 | |
US8755397B2 (en) | Asynchronous communication in an unstable network | |
EP2635001A1 (en) | System and method for providing access to presence status for mobile devices | |
Chika et al. | Financial stock application using websocket in Real Time Application | |
CN114885020A (zh) | 数据传输系统以及方法 | |
CN110896414B (zh) | 利用iot实现服务之间消息通知的方法 | |
CN117221941B (zh) | 基于短信的发送状态报告的实现方法、装置及存储介质 | |
CN111949918A (zh) | 基于分布式环境下的websocket连接优化方法及系统 | |
CN114760348B (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: 20230404 |