一种消息发送方法、终端及计算机存储介质技术

技术编号:29531527 阅读:29 留言:0更新日期:2021-08-03 15:19
本发明专利技术提出一种消息发送方法、终端及计算机存储介质,应用于包括网关、处理端、mqtt模块的系统中;处理端分别连接网关与mqtt模块;方法包括:通过处理端通过网关获取请求发送的消息;通过处理端上线用于发送消息的任务,并将任务的标识存储在任务列表中;通过处理端将消息分为多个批次;针对每个批次,判断标识是否存在预设的任务取消列表中;若判断结果为否,则将消息发送给mqtt模块;通过mqtt模块判断缓存中是否存在该消息;若判断结果为是,则将消息发送给客户端;通过mqtt模块获取客户端反馈的回馈消息,并将回馈消息就进行消息持久化。实现了在无订阅消息的情况下批量发送消息的效果。

【技术实现步骤摘要】
一种消息发送方法、终端及计算机存储介质
本专利技术涉及消息发送
,特别涉及一种消息发送方法、终端及计算机存储介质。
技术介绍
物联网应用前景未来日常活动中引人遐想无限。因此,对物联网协议的需求提出了更高的要求。MQTT是一个客户端服务端架构的发布/订阅模式的消息传输协议。它的设计思想是轻巧、开放、简单、规范,易于实现。这些特点使得它对很多场景来说都是很好的选择,特别是对于受限的环境如机器与机器的通信(M2M)以及物联网环境(IoT)。;现有的mqttbroker功能不是很完善,在无订阅消息的情况下无法实现批量发送消息,并且一旦执行,无法有效得进行终止。由此,目前需要有一种更好的方法来解决现有技术中的问题。
技术实现思路
鉴于此,本专利技术提出了一种消息发送方法、终端及计算机存储介质。具体的,本专利技术提出了以下具体的实施例:本专利技术实施例提出了一种消息发送方法,应用于包括网关、处理端、mqtt模块的系统中;其中,所述处理端分别连接所述网关与所述mqtt模块;该方法包括:通过所述处理端通过所述网关获取请求发送的消息;通过所述处理端上线用于发送消息的任务,并将所述任务的标识存储在任务列表中;通过所述处理端将所述消息分为多个批次;针对每个所述批次,判断所述标识是否存在预设的任务取消列表中;若判断结果为否,则将所述消息发送给所述mqtt模块;通过所述mqtt模块判断缓存中是否存在该消息;若判断结果为是,则将所述消息发送给客户端;通过所述mqtt模块获取所述客户端反馈的回馈消息,并将所述回馈消息就进行消息持久化。在一个具体的实施例中,该方法还包括:若所述标识存在预设的任务取消列表中,则将执行取消操作。在一个具体的实施例中,所述取消操作包括:取消所述任务,并清除所有缓存,以及在任务取消列表中删除所述标识。在一个具体的实施例中,所述取消操作还包括:生成返回结果,所述返回结果用于提示所述任务已取消。在一个具体的实施例中,该方法还包括:当所述mqtt模块获取到用于取消任务的请求时,判断所述请求对应的任务的标识是否在所述任务列表中;若判断结果为是,则判断所述请求对应的任务的标识是否在所述任务取消列表中;若判断结果为是,则中止所述请求对应的任务。在一个具体的实施例中,在中止所述请求对应的任务之后,还包括:生成任务正在取消的指示。在一个具体的实施例中,若所述请求对应的任务的标识不在所述任务列表中,则返回不存在该任务的提示。在一个具体的实施例中,若所述请求对应的任务的标识不在所述任务取消列表中,则在所述任务列表中删除所述请求对应的任务的标识,并在所述任务取消列表中添加所述请求对应的任务的标识。本专利技术实施例还提出了一种终端,包括:处理器,所述处理器用于执行上述的方法。本专利技术实施例还提出了计算机存储介质,所述计算机存储介质中存储有用于执行上述的方法的程序。以此,本专利技术实施例提出了一种消息发送方法、终端及计算机存储介质,应用于包括网关、处理端、mqtt模块的系统中;其中,所述处理端分别连接所述网关与所述mqtt模块;该方法包括:通过所述处理端通过所述网关获取请求发送的消息;通过所述处理端上线用于发送消息的任务,并将所述任务的标识存储在任务列表中;通过所述处理端将所述消息分为多个批次;针对每个所述批次,判断所述标识是否存在预设的任务取消列表中;若判断结果为否,则将所述消息发送给所述mqtt模块;通过所述mqtt模块判断缓存中是否存在该消息;若判断结果为是,则将所述消息发送给客户端;通过所述mqtt模块获取所述客户端反馈的回馈消息,并将所述回馈消息就进行消息持久化。实现了在无订阅消息的情况下批量发送消息的效果。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本专利技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。图1为本专利技术实施例提出的一种消息发送方法的流程示意图;图2为本专利技术实施例提出的一种消息发送方法的系统结构示意图;图3为本专利技术实施例提出的一种消息发送方法的部分流程示意图。具体实施方式在下文中,将更全面地描述本公开的各种实施例。本公开可具有各种实施例,并且可在其中做出调整和改变。然而,应理解:不存在将本公开的各种实施例限于在此公开的特定实施例的意图,而是应将本公开理解为涵盖落入本公开的各种实施例的精神和范围内的所有调整、等同物和/或可选方案。在本公开的各种实施例中使用的术语仅用于描述特定实施例的目的并且并非意在限制本公开的各种实施例。如在此所使用,单数形式意在也包括复数形式,除非上下文清楚地另有指示。除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本公开的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关
中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本公开的各种实施例中被清楚地限定。实施例1本专利技术实施例1公开了一种消息发送方法,如图1所示,该方法包括以下步骤:步骤101、通过所述处理端通过所述网关获取请求发送的消息;具体的,如图2所示,本方案应用于包括网关、处理端、mqtt模块的系统中;其中,所述处理端分别连接所述网关与所述mqtt模块;网关,也即Gateway模块主要是实现http请求的地址路由以及熔断功能;处理端,也即device模块主要实现接收命令,生成mqtt消息并缓存准发的功能,mqtt模块是实现对mqtt客户端认证、连接、发送消息、接收消息订阅、拒绝连接等功能。如图3所示,在集群环境下,device模块接收到http请求要发送消息。步骤102、通过所述处理端上线用于发送消息的任务,并将所述任务的标识存储在任务列表中;具体的,为避免与其他节点发生冲突首先通过vertxshareddata去获取token,拿到令牌后才能开始执行任务;再将任务上线,将任务id(taskId)放到公共的资源中以taskList名字存储。步骤103、通过所述处理端将所述消息分为多个批次;具体的,将批量消息分成若干批次,批次可以自定义。步骤104、针对每个所述批次,判断所述标识是否存在预设的任务取消列表中;关于分批发送:在接收到push请求后,分批立即发送;分批策略为1000台/次,每台间隔为200ms,每批间隔为1s;步骤105、若判断结果为否,则将所述消息发送给所述mqtt模块;具体的,该方法还包括:若所述标识存在预设的任务取消列表中,则将执行取消操作。在一个具体的实施例中,所述取消操作包括:取消所述任务本文档来自技高网
...

【技术保护点】
1.一种消息发送方法,其特征在于,应用于包括网关、处理端、mqtt模块的系统中;其中,所述处理端分别连接所述网关与所述mqtt模块;该方法包括:/n通过所述处理端通过所述网关获取请求发送的消息;/n通过所述处理端上线用于发送消息的任务,并将所述任务的标识存储在任务列表中;/n通过所述处理端将所述消息分为多个批次;/n针对每个所述批次,判断所述标识是否存在预设的任务取消列表中;/n若判断结果为否,则将所述消息发送给所述mqtt模块;/n通过所述mqtt模块判断缓存中是否存在该消息;/n若判断结果为是,则将所述消息发送给客户端;/n通过所述mqtt模块获取所述客户端反馈的回馈消息,并将所述回馈消息就进行消息持久化。/n

【技术特征摘要】
1.一种消息发送方法,其特征在于,应用于包括网关、处理端、mqtt模块的系统中;其中,所述处理端分别连接所述网关与所述mqtt模块;该方法包括:
通过所述处理端通过所述网关获取请求发送的消息;
通过所述处理端上线用于发送消息的任务,并将所述任务的标识存储在任务列表中;
通过所述处理端将所述消息分为多个批次;
针对每个所述批次,判断所述标识是否存在预设的任务取消列表中;
若判断结果为否,则将所述消息发送给所述mqtt模块;
通过所述mqtt模块判断缓存中是否存在该消息;
若判断结果为是,则将所述消息发送给客户端;
通过所述mqtt模块获取所述客户端反馈的回馈消息,并将所述回馈消息就进行消息持久化。


2.如权利要求1所述的方法,其特征在于,还包括:
若所述标识存在预设的任务取消列表中,则将执行取消操作。


3.如权利要求2所述的方法,其特征在于,所述取消操作包括:取消所述任务,并清除所有缓存,以及在任务取消列表中删除所述标识。


4.如权利要求3所述的方法,其特征在于,所述取消操作还包括:生成返回结果,所述返回结果用于提示所述...

【专利技术属性】
技术研发人员:尹继圣
申请(专利权)人:深圳感臻科技有限公司
类型:发明
国别省市:广东;44

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

1