CN113206872B - 一种消息发送方法、终端及计算机存储介质 - Google Patents
一种消息发送方法、终端及计算机存储介质 Download PDFInfo
- Publication number
- CN113206872B CN113206872B CN202110434691.6A CN202110434691A CN113206872B CN 113206872 B CN113206872 B CN 113206872B CN 202110434691 A CN202110434691 A CN 202110434691A CN 113206872 B CN113206872 B CN 113206872B
- Authority
- CN
- China
- Prior art keywords
- task
- message
- list
- identifier
- request
- 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
Images
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/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- 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/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- 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/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提出一种消息发送方法、终端及计算机存储介质,应用于包括网关、处理端、mqtt模块的***中;处理端分别连接网关与mqtt模块;方法包括:通过处理端通过网关获取请求发送的消息;通过处理端上线用于发送消息的任务,并将任务的标识存储在任务列表中;通过处理端将消息分为多个批次;针对每个批次,判断标识是否存在预设的任务取消列表中;若判断结果为否,则将消息发送给mqtt模块;通过mqtt模块判断缓存中是否存在该消息;若判断结果为是,则将消息发送给客户端;通过mqtt模块获取客户端反馈的回馈消息,并将回馈消息就进行消息持久化。实现了在无订阅消息的情况下批量发送消息的效果。
Description
技术领域
本发明涉及消息发送技术领域,特别涉及一种消息发送方法、终端及计算机存储介质。
背景技术
物联网应用前景未来日常活动中引人遐想无限。因此,对物联网协议的需求提出了更高的要求。
MQTT是一个客户端服务端架构的发布/订阅模式的消息传输协议。它的设计思想是轻巧、开放、简单、规范,易于实现。这些特点使得它对很多场景来说都是很好的选择,特别是对于受限的环境如机器与机器的通信(M2M)以及物联网环境(IoT)。;
现有的mqtt broker功能不是很完善,在无订阅消息的情况下无法实现批量发送消息,并且一旦执行,无法有效得进行终止。
由此,目前需要有一种更好的方法来解决现有技术中的问题。
发明内容
鉴于此,本发明提出了一种消息发送方法、终端及计算机存储介质。
具体的,本发明提出了以下具体的实施例:
本发明实施例提出了一种消息发送方法,应用于包括网关、处理端、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、通过所述处理端上线用于发送消息的任务,并将所述任务的标识存储在任务列表中;
具体的,为避免与其他节点发生冲突首先通过vertx shareddata去获取token,拿到令牌后才能开始执行任务;再将任务上线,将任务id(taskId)放到公共的资源中以taskList名字存储。
步骤103、通过所述处理端将所述消息分为多个批次;具体的,将批量消息分成若干批次,批次可以自定义。
步骤104、针对每个所述批次,判断所述标识是否存在预设的任务取消列表中;关于分批发送:在接收到push请求后,分批立即发送;分批策略为1000台/次,每台间隔为200ms,每批间隔为1s;
步骤105、若判断结果为否,则将所述消息发送给所述mqtt模块;
具体的,该方法还包括:若所述标识存在预设的任务取消列表中,则将执行取消操作。在一个具体的实施例中,所述取消操作包括:取消所述任务,并清除所有缓存,以及在任务取消列表中删除所述标识。在一个具体的实施例中,所述取消操作还包括:生成返回结果,所述返回结果用于提示所述任务已取消。
在一个具体的应用场景中,在每个批次执行中,首先在取消任务列表里面进行第一次验证,如果taskId存在其中,那么进行取消操作,否则继续发送程序;
其中,取消操作包括:a.任务终止;b.消除之前所有缓存;c.在任务取消列表中删除taskId,并返回结果“任务已取消”。
发送程序包括:a.消息存入缓存;b.异步发送消息给mqtt模块。
步骤106、通过所述mqtt模块判断缓存中是否存在该消息;
步骤107、若判断结果为是,则将所述消息发送给客户端;
进一步的,当所述mqtt模块获取到用于取消任务的请求时,判断所述请求对应的任务的标识是否在所述任务列表中;若判断结果为是,则判断所述请求对应的任务的标识是否在所述任务取消列表中;若判断结果为是,则中止所述请求对应的任务。
进一步的,在中止所述请求对应的任务之后,还包括:生成任务正在取消的指示。
若所述请求对应的任务的标识不在所述任务列表中,则返回不存在该任务的提示。
若所述请求对应的任务的标识不在所述任务取消列表中,则在所述任务列表中删除所述请求对应的任务的标识,并在所述任务取消列表中添加所述请求对应的任务的标识。
步骤108、通过所述mqtt模块获取所述客户端反馈的回馈消息,并将所述回馈消息就进行消息持久化。
具体的,mqtt broker接收到具体消息;首先将消息和缓存中的消息比对,如果不存在,则不发送给客户端;如果存在,则发送给客户端,客户端会回馈消息给mqtt,mqtt进行结果持久化,根据结果可以实时查询任务进程和结果;
取消当前正在执行的任务包括:
1.得到取消任务请求,taskId;
2.检测任务上线taklist是否存在taskId,如果不存在则终止并返回结果“不存在该任务”,存在则继续执行步骤3;
3.检测取消任务列表是否存在taskId,如果存在,则终止并返回结果“任务正在取消”,不存在则执行步骤4;
4.在任务上线taklist上删除taskId,在任务取消列表中添加taskId。
此外,关于协议转换与协议识别:将http消息转换为mqtt消息。Webserver发送uri请求到mqtt broker,mqtt broker识别http请求并转换mqtt消息并发送至device,device收到mqtt消息,将设备信息通过发送http请求的方式至web server通过Hazelcast实现集群:Hazelcast不需要特别指定一个中心节点,因此可以解决数据中心化问题,将数据分散在每个节点中,可以抗单点故障,所有的hazelcast功能只需引用一个jar包,提供一系列分布式功能,而不需要绑定任何框架来使用,因此适用于任何场景
实施例2
本发明实施例2还公开了一种终端,包括:处理器,所述处理器用于执行实施例1中所述的方法。
具体的,本发明实施例2还公开有其他相关的特征,具体的相关特征请参见实施例1中的记载。
实施例3
本发明实施例3还公开了计算机存储介质,所述计算机存储介质中存储有用于执行实施例1中所述的方法的程序。
具体的,本发明实施例3还公开有其他相关的特征,具体的相关特征请参见实施例1中的记载。
以此,本发明实施例提出了一种消息发送方法、终端及计算机存储介质,应用于包括网关、处理端、mqtt模块的***中;其中,所述处理端分别连接所述网关与所述mqtt模块;该方法包括:通过所述处理端通过所述网关获取请求发送的消息;通过所述处理端上线用于发送消息的任务,并将所述任务的标识存储在任务列表中;通过所述处理端将所述消息分为多个批次;针对每个所述批次,判断所述标识是否存在预设的任务取消列表中;若判断结果为否,则将所述消息发送给所述mqtt模块;通过所述mqtt模块判断缓存中是否存在该消息;若判断结果为是,则将所述消息发送给客户端;通过所述mqtt模块获取所述客户端反馈的回馈消息,并将所述回馈消息就进行消息持久化。实现了在无订阅消息的情况下批量发送消息的效果。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明序号仅仅为了描述,不代表实施场景的优劣。
以上公开的仅为本发明的几个具体实施场景,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
Claims (10)
1.一种消息发送方法,其特征在于,应用于包括网关、处理端、mqtt模块的***中;其中,所述处理端分别连接所述网关与所述mqtt模块;该方法包括:
通过所述处理端通过所述网关获取请求发送的消息;
通过所述处理端上线用于发送消息的任务,并将所述任务的标识存储在任务列表中;
通过所述处理端将所述消息分为多个批次;
针对每个所述批次,判断所述标识是否存在预设的任务取消列表中;
若判断结果为否,则将所述消息发送给所述mqtt模块;
通过所述mqtt模块判断缓存中是否存在该消息;
若判断结果为是,则将所述消息发送给客户端;
通过所述mqtt模块获取所述客户端反馈的回馈消息,并将所述回馈消息进行消息持久化。
2.如权利要求1所述的方法,其特征在于,还包括:
若所述标识存在预设的任务取消列表中,则将执行取消操作。
3.如权利要求2所述的方法,其特征在于,所述取消操作包括:取消所述任务,并清除所有缓存,以及在任务取消列表中删除所述标识。
4.如权利要求3所述的方法,其特征在于,所述取消操作还包括:生成返回结果,所述返回结果用于提示所述任务已取消。
5.如权利要求1所述的方法,其特征在于,还包括:
当所述mqtt模块获取到用于取消任务的请求时,判断所述请求对应的任务的标识是否在所述任务列表中;
若判断结果为是,则判断所述请求对应的任务的标识是否在所述任务取消列表中;
若判断结果为是,则中止所述请求对应的任务。
6.如权利要求5所述的方法,其特征在于,在中止所述请求对应的任务之后,还包括:
生成任务正在取消的指示。
7.如权利要求5所述的方法,其特征在于,若所述请求对应的任务的标识不在所述任务列表中,则返回不存在该任务的提示。
8.如权利要求5所述的方法,其特征在于,若所述请求对应的任务的标识不在所述任务取消列表中,则在所述任务列表中删除所述请求对应的任务的标识,并在所述任务取消列表中添加所述请求对应的任务的标识。
9.一种终端,其特征在于,包括:处理器,所述处理器用于执行权利要求1-8中任意一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有用于执行权利要求1-8中任意一项所述的方法的程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110434691.6A CN113206872B (zh) | 2021-04-22 | 2021-04-22 | 一种消息发送方法、终端及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110434691.6A CN113206872B (zh) | 2021-04-22 | 2021-04-22 | 一种消息发送方法、终端及计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113206872A CN113206872A (zh) | 2021-08-03 |
CN113206872B true CN113206872B (zh) | 2022-06-03 |
Family
ID=77027902
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110434691.6A Active CN113206872B (zh) | 2021-04-22 | 2021-04-22 | 一种消息发送方法、终端及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113206872B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105519041A (zh) * | 2013-09-28 | 2016-04-20 | 迈克菲股份有限公司 | 安全连接的框架 |
CN108768826A (zh) * | 2018-05-16 | 2018-11-06 | 华南理工大学 | 基于MQTT和Kafka高并发场景下的消息路由方法 |
CN110086636A (zh) * | 2019-04-17 | 2019-08-02 | 平安科技(深圳)有限公司 | 一种基于mqtt的消息分发方法、服务器及存储介质 |
CN112104720A (zh) * | 2020-09-03 | 2020-12-18 | 国电南瑞科技股份有限公司 | 适用于边缘物联终端的MQTT双Broker数据交互方法及*** |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10645181B2 (en) * | 2016-12-12 | 2020-05-05 | Sap Se | Meta broker for publish-subscribe-based messaging |
CN110365587B (zh) * | 2018-03-26 | 2022-04-19 | 阿里巴巴集团控股有限公司 | 设备间通信方法、装置、设备和存储介质 |
-
2021
- 2021-04-22 CN CN202110434691.6A patent/CN113206872B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105519041A (zh) * | 2013-09-28 | 2016-04-20 | 迈克菲股份有限公司 | 安全连接的框架 |
CN108768826A (zh) * | 2018-05-16 | 2018-11-06 | 华南理工大学 | 基于MQTT和Kafka高并发场景下的消息路由方法 |
CN110086636A (zh) * | 2019-04-17 | 2019-08-02 | 平安科技(深圳)有限公司 | 一种基于mqtt的消息分发方法、服务器及存储介质 |
CN112104720A (zh) * | 2020-09-03 | 2020-12-18 | 国电南瑞科技股份有限公司 | 适用于边缘物联终端的MQTT双Broker数据交互方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN113206872A (zh) | 2021-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109889551B (zh) | 一种智能硬件接入的物联网云平台的方法 | |
CN110958281B (zh) | 基于物联网的数据传输方法及通信装置 | |
US20140115046A1 (en) | Stream processing using a client-server architecture | |
KR102407334B1 (ko) | 게이트웨이 장치 및 그 동작 방법 | |
CN110012083B (zh) | 一种数据传输方法、服务器及数据传输装置 | |
CN113612686A (zh) | 流量调度方法、装置及电子设备 | |
CN111818158B (zh) | 网关控制方法、装置、电子设备及存储介质 | |
CN102625287A (zh) | 一种手机应用软件的下载方法 | |
CN114398176A (zh) | 服务访问方法、装置、电子设备及存储介质 | |
CN110753129A (zh) | 消息传输方法、***、装置、设备及计算机可读存储介质 | |
CN114338063B (zh) | 消息队列***、业务处理方法及计算机可读存储介质 | |
CN104539510A (zh) | 一种基于多协议的信息推送***及方法 | |
CN114979295B (zh) | 一种网关管理的方法和装置 | |
US9026582B2 (en) | Device management methods and related apparatus for enhancing applicability of status messages in response to commands | |
CN113342503B (zh) | 实时进度反馈方法、装置、设备及存储介质 | |
US9106596B2 (en) | Method and apparatus of configuring a data broadcast service | |
CN111124717A (zh) | 消息投递方法、***及计算机存储介质 | |
CN113206872B (zh) | 一种消息发送方法、终端及计算机存储介质 | |
CN112261111A (zh) | 一种应用程序内浏览器跨域访问实现方法及*** | |
JP5517255B2 (ja) | 複数のサービスノードサーバにおけるサービス連結制御方法、制御ノードサーバ及びプログラム | |
WO2019201111A1 (zh) | 信息处理方法、装置、设备及计算机可读存储介质 | |
CN111262779A (zh) | 即时通讯中数据的获取方法、装置、服务器及*** | |
CN113553206B (zh) | 数据事件执行方法、装置、电子设备和计算机可读介质 | |
CN113596105B (zh) | 内容的获取方法、边缘节点及计算机可读存储介质 | |
CN110661895A (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 518000 D401, productivity building, No. 5, Gaoxin middle 2nd Road, Science Park community, Yuehai street, Nanshan District, Shenzhen, Guangdong Applicant after: Shenzhen ganzhen intelligent Co.,Ltd. Address before: 518000 Room 501, building a, productivity building, No.5, Gaoxin middle 2nd Road, science and Technology Park, Yuehai street, Nanshan District, Shenzhen City, Guangdong Province Applicant before: 8D TECHNOLOGY Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |