离线消息的点对点通信方法、系统、装置及存储介质制造方法及图纸

技术编号:37151800 阅读:19 留言:0更新日期:2023-04-06 22:08
本发明专利技术公开了一种离线消息的点对点通信方法、系统、装置及存储介质,方法包括:根据MQTT协议,建立发布者终端与Broker集群中的第一目标节点的第一长连接;基于第一长连接,通过发布者终端向第一目标节点发送消息数据;当第一目标节点存在与消息数据关联的第一订阅请求,通过第一目标节点向订阅者终端发送消息数据;否则,将消息数据持久化到目标数据库,保存为离线消息,和将消息数据在Broker集群进行扩散处理。本发明专利技术通过Broker实现MQTT Broker集群部署,实现消息的直接推送,以及通过目标数据库对消息数据进行持久化的离线消息保存,实现离线消息的扩散,能够避免消息重复推送的问题,并且不会带来额外的内存资源开销,可广泛应用于通信技术领域。泛应用于通信技术领域。泛应用于通信技术领域。

【技术实现步骤摘要】
离线消息的点对点通信方法、系统、装置及存储介质


[0001]本专利技术涉及通信
,尤其是离线消息的点对点通信方法、系统、装置及存储介质。

技术介绍

[0002]MQTT协议作为一种低开销、低带宽占用的即时通讯协议,在物联网、小型设备、移动应用等方面有较广泛的应用,它是基于发布/订阅模式设计的,发布者发布消息到指定topic以后,所有订阅该topic的订阅都能去接收该消息。
[0003]在部分应用场景下,会有进行点对点通信的需求,消息发布者只需要把消息精准地推送到一个指定消息订阅者即可,比如手机app消息精准推送等。对于这类场景,通过合理地设计topic订阅规范,让每个消息终端都订阅到唯一的一个topic,就可以达到点对点通信的效果。而在点对点通信场景中,常常会伴随着离线消息处理机制的需求,当消息的目标终端不在线时,消息发布者不希望这些消息就此丢失,而是希望在消息有效期内,如果目标终端上线了就及时再将所有此类消息进行推送,并且只推送一次。虽然标准的MQTT协议提供了保留消息和会话保持的特性来应对订阅者离线的场景,但是这两个特性却并不能很好满足点对点通信中的离线消息的需要。
[0004]目前有许多的MQTT Broker实现,比如HiveMQ、EMQ、mosquito等等,这些都是基于标准MQTT协议的实现,在将它们应用于需要离线消息处理机制的点对点通信场景时,会遇到以下问题:
[0005](1)如果开启使用标准MQTT提供的保留消息特性,那么一个topic只能保存一条消息,并且在有效期内订阅者每次上线都会重复收到该消息。在实际应用场景中就可能会遇到消息丢失和重复接收的问题。
[0006](2)如果开启使用标准MQTT提供的会话保持特性,那么必须在会话保持的有效期内离线消息才会生效,而且如果会话保持的有效期设置的比较大的话,会在服务器内存中保存过多的会话,占用额外内存。在实际应用场景中就可能会遇到具体消息终端的上一次在线时间过久就会失效,以及Broker服务器内存资源开销过大的问题。

技术实现思路

[0007]有鉴于此,本专利技术实施例提供了一种检测精度高,部署成本低的,一种离线消息的点对点通信方法、系统、装置及存储介质。
[0008]一方面,本专利技术实施例提供了一种离线消息的点对点通信方法,包括:
[0009]根据MQTT协议,建立发布者终端与Broker集群中的第一目标节点的第一长连接;
[0010]基于所述第一长连接,通过发布者终端向所述第一目标节点发送消息数据;
[0011]当所述第一目标节点存在与所述消息数据关联的第一订阅请求,通过所述第一目标节点向订阅者终端发送所述消息数据;否则,将所述消息数据持久化到目标数据库,保存为离线消息,和将所述消息数据在所述Broker集群进行扩散处理。
[0012]可选地,还包括:
[0013]根据MQTT协议,建立订阅者终端与Broker集群中的第一目标节点的第二长连接;
[0014]基于所述第二长连接,通过所述订阅者终端向所述第一目标节点发送第一订阅请求;
[0015]其中,所述第一订阅请求与所述消息数据关联。
[0016]可选地,还包括:
[0017]根据MQTT协议,建立订阅者终端与Broker集群中的第二目标节点的第三长连接;
[0018]基于所述第三长连接,通过所述订阅者终端向所述第二目标节点发送第二订阅请求;
[0019]其中,所述第二订阅请求与所述离线消息关联。
[0020]可选地,所述将所述消息数据在所述Broker集群进行扩散处理,包括:
[0021]将所述消息数据扩散到所述Broker集群中的其余节点;
[0022]基于所述第二订阅请求,通过所述目标数据库向订阅者终端发送所述离线消息。
[0023]可选地,所述基于所述第二订阅请求,通过所述目标数据库向订阅者终端发送所述离线消息,包括:
[0024]根据所述第二订阅请求,对所述目标数据库进行检索查询,匹配到所述离线消息;
[0025]将所述离线消息发送到所述订阅者终端,对所述目标数据库中的所述离线消息进行清除处理。
[0026]可选地,所述将所述消息数据持久化到目标数据库,保存为离线消息,包括:
[0027]对所述消息数据设置预设期限;
[0028]将设置预设期限的消息数据持久化到目标数据库,保存为离线消息。
[0029]可选地,还包括:
[0030]根据所述预设期限,对所述目标数据库中的所述离线消息进行轮询扫描;
[0031]当所述离线消息的有效期达到所述预设期限,对所述目标数据库中的所述离线消息进行删除处理。
[0032]第二方面,本专利技术实施例提供了一种离线消息的点对点通信系统,包括:
[0033]第一模块,用于根据MQTT协议,建立发布者终端与Broker集群中的第一目标节点的第一长连接;
[0034]第二模块,用于基于所述第一长连接,通过发布者终端向所述第一目标节点发送消息数据;
[0035]第三模块,用于当所述第一目标节点存在与所述消息数据关联的第一订阅请求,通过所述第一目标节点向订阅者终端发送所述消息数据;否则,将所述消息数据持久化到目标数据库,保存为离线消息,和将所述消息数据在所述Broker集群进行扩散处理。
[0036]另一方面,本专利技术实施例提供了一种离线消息的点对点通信装置,包括处理器以及存储器;
[0037]所述存储器用于存储程序;
[0038]所述处理器执行所述程序实现如前面所述的方法。
[0039]另一方面,本专利技术实施例提供了一种计算机可读存储介质,所述存储介质存储有程序,所述程序被处理器执行实现如前面所述的方法。
[0040]本专利技术实施例还公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器可以从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前面的方法。
[0041]本专利技术的实施例首先根据MQTT协议,建立发布者终端与Broker集群中的第一目标节点的第一长连接;随后基于所述第一长连接,通过发布者终端向所述第一目标节点发送消息数据;然后当所述第一目标节点存在与所述消息数据关联的第一订阅请求,通过所述第一目标节点向订阅者终端发送所述消息数据;否则,将所述消息数据持久化到目标数据库,保存为离线消息,和将所述消息数据在所述Broker集群进行扩散处理。本专利技术通过Broker实现MQTT Broker集群部署,实现消息的直接推送,以及通过目标数据库对消息数据进行持久化的离线消息保存,实现离线消息的扩散,能够避免消息重复推送的问题,并且不会带来额外的内存资源开销。
附图说明
[0042]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种离线消息的点对点通信方法,其特征在于,包括:根据MQTT协议,建立发布者终端与Broker集群中的第一目标节点的第一长连接;基于所述第一长连接,通过发布者终端向所述第一目标节点发送消息数据;当所述第一目标节点存在与所述消息数据关联的第一订阅请求,通过所述第一目标节点向订阅者终端发送所述消息数据;否则,将所述消息数据持久化到目标数据库,保存为离线消息,和将所述消息数据在所述Broker集群进行扩散处理。2.根据权利要求1所述的一种离线消息的点对点通信方法,其特征在于,还包括:根据MQTT协议,建立订阅者终端与Broker集群中的第一目标节点的第二长连接;基于所述第二长连接,通过所述订阅者终端向所述第一目标节点发送第一订阅请求;其中,所述第一订阅请求与所述消息数据关联。3.根据权利要求1所述的一种离线消息的点对点通信方法,其特征在于,还包括:根据MQTT协议,建立订阅者终端与Broker集群中的第二目标节点的第三长连接;基于所述第三长连接,通过所述订阅者终端向所述第二目标节点发送第二订阅请求;其中,所述第二订阅请求与所述离线消息关联。4.根据权利要求3所述的一种离线消息的点对点通信方法,其特征在于,所述将所述消息数据在所述Broker集群进行扩散处理,包括:将所述消息数据扩散到所述Broker集群中的其余节点;基于所述第二订阅请求,通过所述目标数据库向订阅者终端发送所述离线消息。5.根据权利要求4所述的一种离线消息的点对点通信方法,其特征在于,所述基于所述第二订阅请求,通过所述目标数据库向订阅者终端发送所述离线消息,包括:根...

【专利技术属性】
技术研发人员:刘佳文刘帅英周景武
申请(专利权)人:广州市玄武无线科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1