CN111343289A - 基于mqtt协议的消息推送方法及系统 - Google Patents

基于mqtt协议的消息推送方法及系统 Download PDF

Info

Publication number
CN111343289A
CN111343289A CN202010438553.0A CN202010438553A CN111343289A CN 111343289 A CN111343289 A CN 111343289A CN 202010438553 A CN202010438553 A CN 202010438553A CN 111343289 A CN111343289 A CN 111343289A
Authority
CN
China
Prior art keywords
message
mqtt
module
client
user
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.)
Granted
Application number
CN202010438553.0A
Other languages
English (en)
Other versions
CN111343289B (zh
Inventor
李永禄
刘玉通
张宁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suning Intelligent Terminal Co ltd
Original Assignee
Suning Intelligent Terminal Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Suning Intelligent Terminal Co ltd filed Critical Suning Intelligent Terminal Co ltd
Priority to CN202010438553.0A priority Critical patent/CN111343289B/zh
Publication of CN111343289A publication Critical patent/CN111343289A/zh
Application granted granted Critical
Publication of CN111343289B publication Critical patent/CN111343289B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/212Monitoring or handling of messages using filtering or selective blocking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/26Special purpose or proprietary protocols or architectures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords

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)
  • Power Engineering (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了基于MQTT协议的消息推送方法及系统,其中,该方法包括:客户端从消息推送平台获取与MQTT服务模块连接所需的动态连接信息;客户端创建MQTT客户模块,MQTT客户模块基于动态连接信息与MQTT服务模块建立连接,用于接收MQTT服务模块发送的消息;客户端向消息推送平台发起订阅请求,在消息推送平台对用户安全性验证成功后从MQTT服务模块订阅消息,和/或客户端向消息推送平台请求消息发布,并在消息推送平台对用户安全性和消息内容安全性验证成功后向MQTT服务模块发送消息。本发明提供的基于MQTT协议的消息推送系统采用上述方法,实现了MQTT客户模块与MQTT服务模块采用动态连接信息建立连接,以及对消息内容进行过滤控制,提高了消息推送系统的安全性。

Description

基于MQTT协议的消息推送方法及系统
技术领域
本发明涉及即时通讯技术领域,尤其涉及基于MQTT协议的消息推送方法及系统。
背景技术
物联网是当前的技术热点,MQTT是物联网的核心协议之一。MQTT是一个轻量的发布订阅模式消息传输协议,专门针对低带宽和不稳定网络环境的物联网应用设计。
MQTT协议广泛应用于物联网、移动互联网、智能硬件、车联网、电力能源等领域,例如:在物联网M2M通信、物联网大数据采集、Android消息推送、WEB消息推送、移动即时消息、远程教育以及各种智能硬件、智能家具、智能电器的通讯中,都可以使用MQTT协议。
现有的基于MQTT协议的消息推送方法或系统平台中,通常客户端订阅主题都是通过调用MQTT客户模块SDK API向MQTT 服务模块发起订阅,当主题众多,大量的客户端订阅数据给网络带来很大压力。MQTT客户连接MQTT server的用户名和密码为固定值,安全性不高;此外,客户端发布消息也是通过调用MQTT客户模块SDK API向MQTT 服务模块发起发布请求,无法对消息内容进行过滤控制,进一步导致现有的基于MQTT协议的消息推送方法或系统平台安全性低。
发明内容
本发明的目的在于提供基于MQTT协议的消息推送方法及系统,以解决现有技术中MQTT客户模块连接MQTT 服务模块的用户名和密码为固定值,以及无法对消息内容进行过滤控制,导致的消息推送安全性低的问题。
为了实现上述目的,本发明提供如下技术方案:
一种基于MQTT协议的消息推送方法,包括步骤:
客户端从消息推送平台获取与MQTT服务模块连接所需的动态连接信息;
客户端创建MQTT客户模块,MQTT客户模块基于动态连接信息与MQTT服务模块建立连接,用于接收MQTT服务模块发送的消息;
客户端向消息推送平台发起订阅请求,在消息推送平台对用户安全性验证成功后从MQTT服务模块订阅消息,和/或
客户端向消息推送平台请求消息发布,并在消息推送平台对用户安全性和消息内容安全性验证成功后向MQTT服务模块发送消息。
优选地,客户端从消息推送平台获取与MQTT服务模块连接所需的动态连接信息的方法具体包括:
客户端向消息推送平台请求与MQTT服务模块连接所需的动态连接信息;
消息推送平台的MQTT用户模块基于当次请求生成动态连接信息,并向客户端返回所述动态连接信息,同时将所述动态连接信息存储到MQTT服务模块的用户数据库中。
具体地,MQTT用户模块基于当次请求生成动态连接信息的方法具体包括:
将发出请求的客户端ID设置为MQTT用户名;
利用密码散列函数算法生成一串散列值,并根据预设规则选取一个或多个散列值设置为MQTT动态密码;
将MQTT用户名和MQTT动态密码打包生成动态连接信息。
较佳地,客户端创建MQTT客户模块,与MQTT服务模块建立连接的方法具体包括:
客户端创建MQTT客户模块,并将动态连接信息设置到MQTT客户模块的连接选项中;MQTT客户模块调用MQTT连接函数,向MQTT服务模块发送连接请求;
MQTT服务模块验证连接请求中的动态连接信息是否与用户数据库中动态连接信息一致,若一致,则MQTT服务模块与MQTT客户模块建立连接成功,客户端通过MQTT客户模块接收MQTT服务模块发送的消息,若不一致,则MQTT服务模块与MQTT客户模块连接失败。
优选地,客户端从MQTT服务模块订阅消息的方法具体包括:
客户端的消息订阅模块向消息推送平台发起订阅请求;
消息推送平台的预订阅模块接收到订阅请求后,检查客户端的用户是否为受限用户,如果是受限用户则订阅失败,如果不是受限用户则查找预先为用户设定的订阅主题,并基于所述订阅主题从MQTT服务模块为客户端订阅消息。
优选地,客户端向MQTT服务模块发布消息的方法具体包括:
客户端的消息发布模块向消息推送平台请求发布消息;
消息推送平台的消息预发布模块接收到发布消息的请求后,检查客户端的用户是否为受限用户,如果是受限用户,则发布消息失败,如果不是受限用户,则识别判断请求发布的消息是否是违禁消息,如果是违禁消息,则发布消息失败并将发出请求的客户端用户加入到受限用户名单中,如果不是违禁消息,则将请求发布的消息发送给MQTT服务模块。
进一步地,消息发布模块请求发布的消息中包括接收消息的指定用户的信息;
MQTT服务模块接收到请求发布的消息后将消息转发给指定用户。
一种基于MQTT协议的消息推送系统,包括客户端和消息推送平台,所述客户端包括连接信息获取模块、MQTT客户模块、消息订阅模块和消息发布模块,所述消息推送平台包括MQTT服务模块,其中,
所述连接信息获取模块用于从消息推送平台获取与MQTT服务模块连接所需的动态连接信息;
所述MQTT客户模块用于基于动态连接信息与MQTT服务模块建立连接,并接收MQTT服务模块发送的消息;
所述消息订阅模块用于向消息推送平台发起订阅请求,在消息推送平台对用户安全性验证成功后从MQTT服务模块订阅消息;
所述消息发布模块用于向消息推送平台请求消息发布,并在消息推送平台对用户安全性和消息内容安全性验证成功后向MQTT服务模块发送消息。
优选地,所述消息推送平台还包括MQTT用户模块、预订阅模块和消息预发布模块,其中,
所述MQTT用户模块基于所述连接信息获取模块的当次请求生成动态连接信息,并向客户端返回所述动态连接信息,同时将所述动态连接信息存储到MQTT服务模块的用户数据库中;
所述预订阅模块用于接收所述消息订阅模块的订阅请求,检查客户端的用户是否为受限用户,如果是受限用户,则订阅失败,如果不是受限用户,则查找预先为用户设定的订阅主题,并基于所述订阅主题从MQTT服务模块为客户端订阅消息;
所述消息预发布模块用于接收所述消息发布模块发布消息的请求,检查客户端的用户是否为受限用户,如果是受限用户,则发布消息失败,如果不是受限用户,则识别判断请求发布的消息是否是违禁消息,如果是违禁消息,则发布消息失败并将发出请求的客户端用户加入到受限用户名单中,如果不是违禁消息,则将请求发布的消息发送给MQTT服务模块。
较佳地,所述消息推送平台还包括Web Service模块,所述Web Service模块用于分别建立所述MQTT用户模块与所述连接信息获取模块、所述预订阅模块与所述消息订阅模块、以及所述消息预发布模块与所述消息发布模块之间的连接关系。
与现有技术相比,本发明提供的基于MQTT协议的消息推送方法及系统具有以下有益效果:
本发明提供的基于MQTT协议的消息推送方法,客户端从消息推送平台获取与MQTT服务模块连接所需的动态连接信息后,创建MQTT客户模块,MQTT客户模块基于动态连接信息与MQTT服务模块建立连接,该动态连接信息为随机动态生成,保证了系统的安全性;客户端向消息推送平台发起订阅请求时,需要在消息推送平台对用户安全性验证成功后才能从MQTT服务模块订阅消息,同样,客户端向消息推送平台请求消息发布时,也需要在消息推送平台对用户安全性和消息内容安全性验证成功后才能向MQTT服务模块发送消息,控制了受限用户订阅消息的权利,也过滤了非法消息内容,保证了消息推送过程的安全性。
本发明提供的基于MQTT协议的消息推送系统,采用上述基于MQTT协议的消息推送方法,实现了MQTT客户模块与 MQTT 服务模块采用动态连接信息建立连接,以及对消息内容进行过滤控制,提高了消息推送系统的安全性。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例中基于MQTT协议的消息推送方法的流程示意图;
图2为本发明实施例中MQTT客户模块与MQTT服务模块建立连接的示意图;
图3为本发明实施例中客户端从MQTT服务模块订阅消息的方法示意图;
图4为本发明实施例中客户端向MQTT服务模块发布消息的方法示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其它实施例,均属于本发明保护的范围。
实施例一
请参阅图1,本实施例提供的基于MQTT协议的消息推送方法,包括步骤:
客户端从消息推送平台获取与MQTT服务模块连接所需的动态连接信息;
客户端创建MQTT客户模块,MQTT客户模块基于动态连接信息与MQTT服务模块建立连接,用于接收MQTT服务模块发送的消息;
客户端向消息推送平台发起订阅请求,在消息推送平台对用户安全性验证成功后从MQTT服务模块订阅消息,和/或客户端向消息推送平台请求消息发布,并在消息推送平台对用户安全性和消息内容安全性验证成功后向MQTT服务模块发送消息。
客户端创建的MQTT客户模块,通过从消息推送平台获取的动态连接信息与MQTT服务模块建立连接,该动态连接信息为消息推送平台随机动态生成,保证了连接的安全性,也保证了MQTT客户模块接收信息的安全性;客户端向消息推送平台发起订阅请求时,需要在消息推送平台对用户安全性验证成功后才能从MQTT服务模块订阅消息,同样,客户端向消息推送平台请求消息发布时,也需要在消息推送平台对用户安全性和消息内容安全性验证成功后才能向MQTT服务模块发送消息,控制了受限用户订阅消息的权利,也过滤了非法消息内容,保证了消息推送过程的安全性。
请参阅图2,用户首先开启并登录客户端,该客户端可以是APP也可以是HTML5格式的网页文件,具体过程为:启动客户端,在客户端的登录模块页面输入客户端的用户名和密码并发送给消息推送平台;消息推送平台的业务用户模块验证该用户是否为合法用户,验证通过后则成功登录客户端,若验证不通过,也需要返回重新登录。
用户成功登录客户端之后,客户端从消息推送平台获取与MQTT服务模块连接所需的动态连接信息的方法具体包括:
客户端向消息推送平台请求与MQTT服务模块连接所需的动态连接信息;具体地,客户端的连接信息获取模块通过消息推送平台的Web Service模块向消息推送平台的MQTT用户模块请求与MQTT服务模块连接所需的动态连接信息。
消息推送平台的MQTT用户模块收到请求后,基于当次请求生成动态连接信息,并向客户端返回动态连接信息,同时将动态连接信息存储到MQTT服务模块的用户数据库中。其中,MQTT用户模块基于当次请求生成动态连接信息的方法具体包括:
将发出请求的客户端ID设置为MQTT用户名,该ID是客户端的唯一标识;利用密码散列函数算法生成一串散列值,并根据预设规则选取一个或多个散列值设置为MQTT动态密码,例如,可以采用MD5算法或者SHA算法,取MD5离散值串或SHA离散值串的最后六位作为MQTT动态密码;最后将MQTT用户名和MQTT动态密码打包生成动态连接信息。本领域技术人员应当知晓的是,采用其他方式或算法生成动态的MQTT用户名和/或MQTT动态密码,是基于本发明实施例容易想到的,也落在本发明的保护范围内。
消息推送平台的MQTT用户模块随机动态生成动态连接信息并分别发送给客户端和MQTT服务模块,作为客户端创建的MQTT客户模块与MQTT服务模块的连接验证信息,保证了MQTT客户模块与MQTT服务模块连接的安全性。
请继续参阅图2,本实施例提供的基于MQTT协议的消息推送方法中,当客户端的连接信息获取模块获取到连接MQTT服务模块所需的动态连接信息后,客户端创建MQTT客户模块,设置连接选项,将动态连接信息设置到MQTT客户模块的连接选项中,同时设置连接超时、心跳时间等其他连接属性;连接选项设置好后,MQTT客户模块调用MQTT连接函数,向MQTT服务模块发送连接请求。
MQTT服务模块收到连接请求后,验证连接请求中的动态连接信息是否与用户数据库中动态连接信息一致;若一致,则MQTT服务模块与MQTT客户模块建立连接成功,客户端即可通过MQTT客户模块接收MQTT服务模块发送的消息,该消息可以是其他客户端指定发送给本客户端的消息,方便于建立物联网,并保证物联网络的连接和信息安全;若不一致,则MQTT服务模块与MQTT客户模块连接失败。
客户端创建的MQTT客户模块,通过从消息推送平台获取的动态连接信息与MQTT服务模块建立连接,该动态连接信息为消息推送平台随机动态生成,保证了连接的安全性,也保证了MQTT客户模块接收信息的安全性。
请参阅图3,本实施例提供的基于MQTT协议的消息推送方法中,客户端还可以从MQTT服务模块订阅消息,方法具体包括:
客户端的消息订阅模块向消息推送平台发起订阅请求;具体地,客户端的消息订阅模块通过消息推送平台的Web Service模块向消息推送平台的MQTT服务模块订阅消息。
消息推送平台的Web Service模块接收到订阅请求后通知预订阅模块,预订阅模块接收到订阅请求后,预订阅服务单元通过访问控制模块检查客户端的用户是否为受限用户,该过程可以通过在访问控制模块建立受限用户数据库,通过查阅该受限用户数据库即可知道客户端的用户是否为受限用户;如果是受限用户则订阅失败,如果不是受限用户,预订阅服务单元通过查阅预订阅数据库,查找预先为用户设定的订阅主题,该主题订阅可以采用现有技术中的利用js订阅主题的实现方法,即topic订阅方法,并基于订阅主题从MQTT服务模块为客户端订阅消息,当MQTT服务模块接收到该主题的消息时会主动发送给客户端的MQTT客户模块。
消息推送平台的预订阅模块为MQTT客户端订阅主题,并且在预订阅数据库中预设了订阅主题,避免了当主题众多以及大量的客户端订阅数据给网络带来的压力,同时相较于传统订阅方法中通过调用MQTT客户模块向MQT服务模块发起订阅,减轻了客户端的订阅负担,不必因为需要订阅新主题而升级客户端。此外,客户端向消息推送平台发起订阅请求时,需要在消息推送平台对用户安全性验证成功后才能从MQTT服务模块订阅消息,控制了受限用户订阅消息的权利,提高了订阅过程的安全性。
请参阅图4,本实施例提供的基于MQTT协议的消息推送方法中,客户端向MQTT服务模块发布消息的方法具体包括:
客户端的消息发布模块向消息推送平台请求发布消息;具体地,客户端的消息发布模块通过消息推送平台的Web Service模块向消息推送平台的MQTT服务模块发布消息。
消息推送平台的Web Service模块接收到订阅请求后通知消息预发布模块,消息预发布模块接收到发布消息的请求后,通过访问控制模块检查客户端的用户是否为受限用户,如果是受限用户,则发布消息失败,如果不是受限用户,则识别判断请求发布的消息是否是违禁消息,例如通过关键词识别、利用病毒库查找识别等现有的消息安全识别方法实现,如果是违禁消息,则发布消息失败并将发出请求的客户端用户加入到受限用户名单中,如果不是违禁消息,则将请求发布的消息发送给MQTT服务模块。其中,消息发布模块请求发布的消息中包括接收消息的指定用户的信息;MQTT服务模块接收到请求发布的消息后将消息转发给指定用户,方便于建立物联网,并保证物联网络的连接和信息安全。
此外,客户端向消息推送平台请求消息发布时,也需要在消息推送平台对用户安全性和消息内容安全性验证成功后才能向MQTT服务模块发送消息,过滤了非法消息内容,保证了消息推送过程的安全性。同时,与现有技术中客户端发布消息时通过调用MQTT客户模块直接向MQTT 服务模块发起发布请求相比,增加了对消息内容的控制,减轻了MQTT服务模块 broker的压力,保证了MQTT服务模块 broker的安全。
实施例二
请参阅图2~图4,本发明实施例提供的基于MQTT协议的消息推送系统,包括客户端和消息推送平台,客户端包括连接信息获取模块、MQTT客户模块、消息订阅模块和消息发布模块,消息推送平台包括MQTT服务模块。
其中,连接信息获取模块用于从消息推送平台获取与MQTT服务模块连接所需的动态连接信息;MQTT客户模块用于基于动态连接信息与MQTT服务模块建立连接,并接收MQTT服务模块发送的消息;消息订阅模块用于向消息推送平台发起订阅请求,在消息推送平台对用户安全性验证成功后从MQTT服务模块订阅消息;消息发布模块用于向消息推送平台请求消息发布,并在消息推送平台对用户安全性和消息内容安全性验证成功后向MQTT服务模块发送消息。
优选地,消息推送平台还包括MQTT用户模块、预订阅模块和消息预发布模块。
其中,MQTT用户模块基于连接信息获取模块的当次请求生成动态连接信息,并向客户端返回动态连接信息,同时将动态连接信息存储到MQTT服务模块的用户数据库中。
预订阅模块用于接收消息订阅模块的订阅请求,检查客户端的用户是否为受限用户,如果是受限用户,则订阅失败,如果不是受限用户,则查找预先为用户设定的订阅主题,并基于订阅主题从MQTT服务模块为客户端订阅消息。
消息预发布模块用于接收消息发布模块发布消息的请求,检查客户端的用户是否为受限用户,如果是受限用户,则发布消息失败,如果不是受限用户,则识别判断请求发布的消息是否是违禁消息,如果是违禁消息,则发布消息失败并将发出请求的客户端用户加入到受限用户名单中,如果不是违禁消息,则将请求发布的消息发送给MQTT服务模块。
此外,消息推送平台还包括Web Service模块,Web Service模块用于分别建立MQTT用户模块与连接信息获取模块、预订阅模块与消息订阅模块、以及消息预发布模块与消息发布模块之间的连接关系。整个消息推送平台只有Web Service模块对外提供服务,增强消息推送平台抗外部攻击的能力。
与现有技术相比,本发明实施例提供的基于MQTT协议的消息推送系统的有益效果与上述实施例一提供的基于MQTT协议的消息推送方法的有益效果相同,且该方法中的其他技术特征与上述实施例系统公开的特征相同。
本发明提供的基于MQTT协议的消息推送系统,采用上述基于MQTT协议的消息推送方法,实现了MQTT客户模块与 MQTT 服务模块采用动态连接信息建立连接,以及对消息内容进行过滤控制,提高了消息推送系统的安全性。
在上述实施方式的描述中,具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种基于MQTT协议的消息推送方法,其特征在于,包括步骤:
客户端从消息推送平台获取与MQTT服务模块连接所需的动态连接信息;
客户端创建MQTT客户模块,MQTT客户模块基于动态连接信息与MQTT服务模块建立连接,用于接收MQTT服务模块发送的消息;
客户端向消息推送平台发起订阅请求,在消息推送平台对用户安全性验证成功后从MQTT服务模块订阅消息,和/或
客户端向消息推送平台请求消息发布,并在消息推送平台对用户安全性和消息内容安全性验证成功后向MQTT服务模块发送消息。
2.根据权利要求1所述的基于MQTT协议的消息推送方法,其特征在于,客户端从消息推送平台获取与MQTT服务模块连接所需的动态连接信息的方法具体包括:
客户端向消息推送平台请求与MQTT服务模块连接所需的动态连接信息;
消息推送平台的MQTT用户模块基于当次请求生成动态连接信息,并向客户端返回所述动态连接信息,同时将所述动态连接信息存储到MQTT服务模块的用户数据库中。
3.根据权利要求2所述的基于MQTT协议的消息推送方法,其特征在于,MQTT用户模块基于当次请求生成动态连接信息的方法具体包括:
将发出请求的客户端ID设置为MQTT用户名;
利用密码散列函数算法生成一串散列值,并根据预设规则选取一个或多个散列值设置为MQTT动态密码;
将MQTT用户名和MQTT动态密码打包生成动态连接信息。
4.根据权利要求2所述的基于MQTT协议的消息推送方法,其特征在于,客户端创建MQTT客户模块,与MQTT服务模块建立连接的方法具体包括:
客户端创建MQTT客户模块,并将动态连接信息设置到MQTT客户模块的连接选项中;MQTT客户模块调用MQTT连接函数,向MQTT服务模块发送连接请求;
MQTT服务模块验证连接请求中的动态连接信息是否与用户数据库中动态连接信息一致,若一致,则MQTT服务模块与MQTT客户模块建立连接成功,客户端通过MQTT客户模块接收MQTT服务模块发送的消息,若不一致,则MQTT服务模块与MQTT客户模块连接失败。
5.根据权利要求1所述的基于MQTT协议的消息推送方法,其特征在于,客户端从MQTT服务模块订阅消息的方法具体包括:
客户端的消息订阅模块向消息推送平台发起订阅请求;
消息推送平台的预订阅模块接收到订阅请求后,检查客户端的用户是否为受限用户,如果是受限用户则订阅失败,如果不是受限用户则查找预先为用户设定的订阅主题,并基于所述订阅主题从MQTT服务模块为客户端订阅消息。
6.根据权利要求1所述的基于MQTT协议的消息推送方法,其特征在于,客户端向MQTT服务模块发布消息的方法具体包括:
客户端的消息发布模块向消息推送平台请求发布消息;
消息推送平台的消息预发布模块接收到发布消息的请求后,检查客户端的用户是否为受限用户,如果是受限用户,则发布消息失败,如果不是受限用户,则识别判断请求发布的消息是否是违禁消息,如果是违禁消息,则发布消息失败并将发出请求的客户端用户加入到受限用户名单中,如果不是违禁消息,则将请求发布的消息发送给MQTT服务模块。
7.根据权利要求6所述的基于MQTT协议的消息推送方法,其特征在于,消息发布模块请求发布的消息中包括接收消息的指定用户的信息;
MQTT服务模块接收到请求发布的消息后将消息转发给指定用户。
8.一种基于MQTT协议的消息推送系统,其特征在于,包括客户端和消息推送平台,所述客户端包括连接信息获取模块、MQTT客户模块、消息订阅模块和消息发布模块,所述消息推送平台包括MQTT服务模块,其中,
所述连接信息获取模块用于从消息推送平台获取与MQTT服务模块连接所需的动态连接信息;
所述MQTT客户模块用于基于动态连接信息与MQTT服务模块建立连接,并接收MQTT服务模块发送的消息;
所述消息订阅模块用于向消息推送平台发起订阅请求,在消息推送平台对用户安全性验证成功后从MQTT服务模块订阅消息;
所述消息发布模块用于向消息推送平台请求消息发布,并在消息推送平台对用户安全性和消息内容安全性验证成功后向MQTT服务模块发送消息。
9.根据权利要求8所述的基于MQTT协议的消息推送系统,其特征在于,所述消息推送平台还包括MQTT用户模块、预订阅模块和消息预发布模块,其中,
所述MQTT用户模块基于所述连接信息获取模块的当次请求生成动态连接信息,并向客户端返回所述动态连接信息,同时将所述动态连接信息存储到MQTT服务模块的用户数据库中;
所述预订阅模块用于接收所述消息订阅模块的订阅请求,检查客户端的用户是否为受限用户,如果是受限用户,则订阅失败,如果不是受限用户,则查找预先为用户设定的订阅主题,并基于所述订阅主题从MQTT服务模块为客户端订阅消息;
所述消息预发布模块用于接收所述消息发布模块发布消息的请求,检查客户端的用户是否为受限用户,如果是受限用户,则发布消息失败,如果不是受限用户,则识别判断请求发布的消息是否是违禁消息,如果是违禁消息,则发布消息失败并将发出请求的客户端用户加入到受限用户名单中,如果不是违禁消息,则将请求发布的消息发送给MQTT服务模块。
10.根据权利要求9所述的基于MQTT协议的消息推送系统,其特征在于,所述消息推送平台还包括Web Service模块,所述Web Service模块用于分别建立所述MQTT用户模块与所述连接信息获取模块、所述预订阅模块与所述消息订阅模块、以及所述消息预发布模块与所述消息发布模块之间的连接关系。
CN202010438553.0A 2020-05-22 2020-05-22 基于mqtt协议的消息推送方法及系统 Active CN111343289B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010438553.0A CN111343289B (zh) 2020-05-22 2020-05-22 基于mqtt协议的消息推送方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010438553.0A CN111343289B (zh) 2020-05-22 2020-05-22 基于mqtt协议的消息推送方法及系统

Publications (2)

Publication Number Publication Date
CN111343289A true CN111343289A (zh) 2020-06-26
CN111343289B CN111343289B (zh) 2020-09-25

Family

ID=71187614

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010438553.0A Active CN111343289B (zh) 2020-05-22 2020-05-22 基于mqtt协议的消息推送方法及系统

Country Status (1)

Country Link
CN (1) CN111343289B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111858099A (zh) * 2020-07-24 2020-10-30 海尔优家智能科技(北京)有限公司 消息订阅方法及装置
CN112104720A (zh) * 2020-09-03 2020-12-18 国电南瑞科技股份有限公司 适用于边缘物联终端的MQTT双Broker数据交互方法及系统
CN114205112A (zh) * 2021-11-10 2022-03-18 深圳天地宽视信息科技有限公司 一种云端mqtt访问权限控制方法
CN114338082A (zh) * 2021-11-30 2022-04-12 福建超智集团有限公司 一种智能网关安全连接云平台方法和系统
CN114629935A (zh) * 2022-02-17 2022-06-14 深圳市双合电气股份有限公司 一种生产管理事件消息实时传输处理系统和方法
CN114826710A (zh) * 2022-04-15 2022-07-29 杭州指令集智能科技有限公司 基于mqtt的物联网操作系统及方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105099882A (zh) * 2015-07-09 2015-11-25 杭州电子科技大学 一种基于mqtt的云推送方法和系统
US20170244657A1 (en) * 2016-02-22 2017-08-24 International Business Machines Corporation Message delivery in a message system
CN109286932A (zh) * 2017-07-20 2019-01-29 阿里巴巴集团控股有限公司 入网认证方法、装置及系统
CN109428922A (zh) * 2017-08-29 2019-03-05 华为技术有限公司 一种订阅发布方法及服务器
CN110381057A (zh) * 2019-07-17 2019-10-25 上海庆科信息技术有限公司 通讯连接的处理方法、装置、存储介质、处理器及系统
CN111131501A (zh) * 2019-12-31 2020-05-08 郑州信大捷安信息技术股份有限公司 一种基于mqtt协议的消息推送系统及方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105099882A (zh) * 2015-07-09 2015-11-25 杭州电子科技大学 一种基于mqtt的云推送方法和系统
US20170244657A1 (en) * 2016-02-22 2017-08-24 International Business Machines Corporation Message delivery in a message system
CN109286932A (zh) * 2017-07-20 2019-01-29 阿里巴巴集团控股有限公司 入网认证方法、装置及系统
CN109428922A (zh) * 2017-08-29 2019-03-05 华为技术有限公司 一种订阅发布方法及服务器
CN110381057A (zh) * 2019-07-17 2019-10-25 上海庆科信息技术有限公司 通讯连接的处理方法、装置、存储介质、处理器及系统
CN111131501A (zh) * 2019-12-31 2020-05-08 郑州信大捷安信息技术股份有限公司 一种基于mqtt协议的消息推送系统及方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BROADCOM: "Extending MAS Messaging", 《HTTPS://TECHDOCS.BROADCOM.COM/CONTENT/BROADCOM/TECHDOCS/US/EN/CA-ENTERPRISE-SOFTWARE/LAYER7-API-MANAGEMENT/MOBILE-API-GATEWAY/4-2/MOBILE-POLICIES/CONFIGURE-POLICIES/MESSAGING-AND-PUB-SUB-POLICIES/CREATE-AN-MQTT-MESSAGING-SOLUTION.HTML》 *
MA YUE等: "A MQTT Protocol Message Push Server Based on RocketMQ", 《2017 10TH INTERNATIONAL CONFERENCE ON INTELLIGENT COMPUTATION TECHNOLOGY AND AUTOMATION (ICICTA)》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111858099A (zh) * 2020-07-24 2020-10-30 海尔优家智能科技(北京)有限公司 消息订阅方法及装置
CN111858099B (zh) * 2020-07-24 2024-05-28 海尔优家智能科技(北京)有限公司 消息订阅方法及装置
CN112104720A (zh) * 2020-09-03 2020-12-18 国电南瑞科技股份有限公司 适用于边缘物联终端的MQTT双Broker数据交互方法及系统
CN112104720B (zh) * 2020-09-03 2024-04-26 国电南瑞科技股份有限公司 适用于边缘物联终端的MQTT双Broker数据交互方法及系统
CN114205112A (zh) * 2021-11-10 2022-03-18 深圳天地宽视信息科技有限公司 一种云端mqtt访问权限控制方法
CN114338082A (zh) * 2021-11-30 2022-04-12 福建超智集团有限公司 一种智能网关安全连接云平台方法和系统
CN114629935A (zh) * 2022-02-17 2022-06-14 深圳市双合电气股份有限公司 一种生产管理事件消息实时传输处理系统和方法
CN114826710A (zh) * 2022-04-15 2022-07-29 杭州指令集智能科技有限公司 基于mqtt的物联网操作系统及方法
CN114826710B (zh) * 2022-04-15 2023-09-26 杭州指令集智能科技有限公司 基于mqtt的物联网操作系统及方法

Also Published As

Publication number Publication date
CN111343289B (zh) 2020-09-25

Similar Documents

Publication Publication Date Title
CN111343289B (zh) 基于mqtt协议的消息推送方法及系统
US20180007144A1 (en) Event queuing and distribution system
US9491124B2 (en) Remote control using instant messaging
US8612527B2 (en) Automatic notification system and process
US20070006285A1 (en) Using a variable identity pipe for constrained delegation and connection pooling
KR102208935B1 (ko) 데이터 교환을 위한 컨텍스트를 설정하는 http 프로토콜을 통한 메시징 api
KR101002842B1 (ko) I m p s 시스템과 s i m p l e i m 시스템의 연동 시스템에서 그룹 관리 방법
WO2009130370A1 (en) Methods, apparatuses, and computer program products for providing a single service sign-on
US6882659B1 (en) Wide area network synchronization
CN102148835A (zh) 一种电子文档传递和分享的方法和系统
US20090328172A1 (en) Sessionless redirection in terminal services
CN108418903B (zh) 嵌入式软件日志远程访问系统及访问方法
CN112307486B (zh) 一种权限获取方法、设备和系统
CN114025005B (zh) 一种数据通讯方法、系统、电子设备及存储介质
US20150046988A1 (en) System, control method therefor, and non-transitory computer-readable medium
US20080162586A1 (en) Automatic syncml client profile creation for new servers
CN114095463B (zh) 基于即时通讯的数据处理方法、装置、设备及介质
US8156547B2 (en) Methods and systems for device-independent portable session synchronization
CN114979097A (zh) 基于mqtt的消息推送方法、装置及电子设备
WO2023098816A1 (zh) 基于mqtt协议的设备通信方法及装置
CN115426392B (zh) 一种设备网络管理方法、装置、设备及存储介质
CN113542324B (zh) 一种消息推送方法和装置
CN114844961B (zh) 一种分布式系统协议互通方法、装置、设备及存储介质
CN116506136A (zh) 政务服务的跨域登录认证方法及装置
WO2011020364A1 (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