CN117294749A - 一种基于mqtt协议的软硬件数据传输方法 - Google Patents
一种基于mqtt协议的软硬件数据传输方法 Download PDFInfo
- Publication number
- CN117294749A CN117294749A CN202311215790.0A CN202311215790A CN117294749A CN 117294749 A CN117294749 A CN 117294749A CN 202311215790 A CN202311215790 A CN 202311215790A CN 117294749 A CN117294749 A CN 117294749A
- Authority
- CN
- China
- Prior art keywords
- mqtt
- message
- client
- server
- data transmission
- 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 34
- 230000005540 biological transmission Effects 0.000 title claims abstract description 32
- 230000004044 response Effects 0.000 claims abstract description 16
- 230000007246 mechanism Effects 0.000 claims abstract description 14
- 230000006854 communication Effects 0.000 claims abstract description 8
- 238000004891 communication Methods 0.000 claims abstract description 8
- 230000008569 process Effects 0.000 claims abstract description 7
- 238000012360 testing method Methods 0.000 claims abstract description 7
- 230000006870 function Effects 0.000 claims description 19
- 238000004140 cleaning Methods 0.000 claims description 2
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000007175 bidirectional communication Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
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/14—Session management
- H04L67/143—Termination or inactivation of sessions, e.g. event-controlled end of session
- H04L67/145—Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
- H04L51/043—Real-time or near real-time messaging, e.g. instant messaging [IM] using or handling presence information
-
- 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/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- 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/26—Special purpose or proprietary protocols or architectures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供一种基于MQTT协议的软硬件数据传输方法,包括:搭建MQTT服务器,建立MQTT服务器与MQTT客户端的连接,在建立连接的所述MQTT服务器和MQTT客户端之间进行数据传输;连接的建立包括:设置MQTT客户端的应答信息和连接状态的超时时间;预设MQTT服务器发送的心跳消息和设置会话信息的清除条件;创建会话消息发送规则并且设置消息质量;创建连接过程和数据传输过程的回调机制,通过MQTT服务器以测试MQTT客户端。根据本发明通过搭建MQTT服务器并引入MQTT客户端并建立连接;以极少的代码和有限的带宽小型传输,开销很小,为连接远程设备提供实时可靠的消息服务,另外MQTT支持客户标识、用户名和密码认证以及使用TLS加密通讯保证安全性。
Description
技术领域
本发明涉及通信技术领域,具体涉及一种基于MQTT协议的软硬件数据传输方法。
背景技术
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅模式的“轻量级”通讯协议,作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。
由于HTTP协议(Hyper Text TransferProtocol,超文本传输协议)必须由设备主动向服务器发送数据,难以主动向设备推送数据,比如对于频繁的操控场景,只能推过设备定期主动拉取的的方式,实现成本和实时性都大打折扣;而且HTTP是明文协议安全性不高,无法满足要求高安全性的物联网场景。因此发明一种基于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服务器不会清除会话,当重新连接后可以接收之前订阅主题的信息。
优选地,创建会话消息发送规则并且设置消息质量:
设置质量等级,设置为0时,消息最多分发一次,消息发送完毕后立即删除;
设置为1,所述MQTT服务器至少发送一次,所述MQTT服务器将消息发出后存储,待所述MQTT客户端带所述应答信息回应,若,所述MQTT服务器没有接收到,则重新发送,直到回应到达后再把消息删除;
设置为2,所述MQTT客户端确保只接收到一次来自所述MQTT服务端的消息。
优选地,所述创建连接过程和数据传输过程的回调机制为:通过编程语言的回调函数机制,设置连接丢失、接收消息和消息发送完成时的回调函数,所述回调函数包括:连接丢失回调函数、接收消息回调函数以及消息发送完成回调函数。
优选地,通过MQTT服务端以测试MQTT客户端为:
测试所述MQTT客户端程序,启动JAVA程序,使用MQTT客户端实例调用发布方法,向指定主题发布消息,并后台打印出订阅的主题和接收的主题以及消息内容。
本发明提供的一种基于MQTT协议的软硬件数据传输方法具有如下有益效果:
本发明通过搭建MQTT服务器并引入MQTT客户端并建立连接;它可以以极少的代码和有限的带宽小型传输,开销很小;为连接远程设备提供实时可靠的消息服务,另外MQTT支持客户标识、用户名和密码认证以及使用TLS加密通讯保证安全性,因此采用MQTT对接硬件数据是最可靠和具有实时性的方案。
附图说明
图1为本发明的流程示意图。
具体实施方式
如图1所示,本发明提供一种基于MQTT协议的软硬件数据传输方法,其包括:
搭建MQTT服务器,建立MQTT服务器与MQTT客户端的连接,在建立连接的所述MQTT服务器和MQTT客户端之间进行数据传输;
所述连接的建立包括:
设置MQTT客户端的应答信息和连接状态的超时时间;
预设MQTT服务器发送的心跳消息和设置会话信息的清除条件;
创建会话消息发送规则并且设置消息质量;
创建连接过程和数据传输过程的回调机制,通过MQTT服务器以测试MQTT客户端。
具体地,能够搭建MQTT服务器的软件有很多,比如Mosquitto(开源消息代理软件)和EMQX(Erlang/Enterprise/Elastic MQTT Broker),与Mosquitto相比,EMQX单服务器节点支持百万级连接,单集群支持亿级并发连接。因此使用MEQX搭建服务,下载相应的版本后解压,通过命令行下进入解压路径,输入命令成功启动EMQX,搭建MQTT客户端,利用JAVA搭建MQTT客户端接收消息,新建项目后引入MQTT客户端JAVA版本包,通过指定服务器地址、端口号等参数,以及可选的用户名和密码,建立与MQTT服务器的连接,成功建立连接后,客户端将能够与服务器进行通信;MQTT协议定义了客户端发送消息后,服务器返回的不同类型的应答信息,根据所使用的MQTT客户端,设置相应的回调函数来处理这些应答信息,以便进行后续操作或检查错误;在建立连接时,设置连接状态的超时时间,如果在指定的时间内未能成功建立连接,客户端可以根据超时处理机制进行相应的操作,例如重新连接或报错,在发送消息时,选择适当的消息质量级别,不同的级别对应不同的消息传输保证机制,同时,使用MQTT服务端发送测试消息,并观察客户端是否能够正确接收和处理这些消息,通过在回调函数中执行相应的操作,以验证客户端与服务端之间的通信是否正常,并确保所需的功能得到正确实现。
其中,MQTT客户端非常小,占用极少的资源,MQTT消息头最小只需要占用2个字节,优化了网络带宽,同时可实现双向通信,MQTT允许服务器和设备之间双向通信,以及可扩展到数百万设备,MQTT可以扩展连接数百万个物联网设备,通过其传输的消息具有可靠性,保证了在不同的网络环境下消息传递的可靠性,许多物联网设备通过不可靠的蜂窝网络进行连接,MQTT支持持久会话,减少了客户端与代理重新连接的时间,MQTT可以使用TLS(Transport Layer Security,传输层安全协议)加密消息,并使用现代的认证协议,进行客户端认证,为了应对网络不稳定的情况,MQTT提供了心跳保活(Keep Alive)机制;在客户端与服务端长时间无消息交互的情况下,保持连接不被断开,若一旦断开,客户端可即时感知并立即重连。
在一些实施方式中,所述客户端的应答信息包括客户端ID、通信秘钥、协议标识和设备信息。
在一些实施方式中,
所述连接状态的超时时间为:
所述MQTT服务器在第一时刻下向所述MQTT客户端发送信息,所述MQTT服务器在第二时刻接收到所述MQTT客户端返回的信息,所述第一时刻和第二时刻之间的差值为时刻差值,将所述时刻差值与预设的超时阈值进行比较,如所述时刻差值超出该预设超时阈值,则所述MQTT客户端与所述MQTT服务器连接超时。
在一些实施方式中,
所述心跳消息为:
所述MQTT服务器根据不同时间节点向所述MQTT客户端发送信息,所述MQTT服务器根据接受到两次相邻的时间节点下的时间差与预设的时间阈值判断是否在区间内,是,则对应的当前MQTT客户端在线,否则,该MQTT客户端不在线。
在一些实施方式中,
所述会话信息的清除条件为:
在所述MQTT客户端向所述MQTT服务器发起请求连接开始,到其连接中断或会话过期的即时消息,以选择是否将其清楚;
若是,判定所述MQTT客户端的在线情况,当MQTT客户端不在线时,所述MQTT服务器清除所述MQTT客户端的订阅主题的信息,当所述MQTT客户端重新与所述MQTT服务器建立连接时,生成新的订阅主题;若否,当所述MQTT客户端掉线后所述MQTT服务器不会清除会话,当重新连接后可以接收之前订阅主题的信息。
在一些实施方式中,
创建会话消息发送规则并且设置消息质量:
设置质量等级,设置为0时,消息最多分发一次,消息发送完毕后立即删除;
设置为1,所述MQTT服务器至少发送一次,所述MQTT服务器将消息发出后存储,待所述MQTT客户端带所述应答信息回应,若,所述MQTT服务器没有接收到,则重新发送,直到回应到达后再把消息删除;
设置为2,所述MQTT客户端确保只接收到一次来自所述MQTT服务端的消息。
具体地,设置为0时,消息最多传递一次,发布者发送一条消息之后,就不再关心它有没有发送到对方,也不设置任何重发机制,若当时客户端不可用,则会丢失该消息;设置为1,消息传递至少1次,这种等级保证消息至少会被传递一次,但可能会有重复,接收者会对每条消息进行确认,发送者会存储和重传没有收到确认的消息,设置为2,消息仅传送一次,这种等级保证消息只会被传递一次,而且没有重复,接收者和发送者都会对每条消息进行确认,它可以确保消息不会丢失也不会重复。
在一些实施方式中,所述创建连接过程和数据传输过程的回调机制为:通过编程语言的回调函数机制,设置连接丢失、接收消息和消息发送完成时的回调函数,所述回调函数包括:连接丢失回调函数、接收消息回调函数以及消息发送完成回调函数。
在一些实施方式中,
通过MQTT服务端以测试MQTT客户端为:
测试所述MQTT客户端程序,启动JAVA程序,使用MQTT客户端实例调用发布方法,向指定主题发布消息,并后台打印出订阅的主题和接收的主题以及消息内容。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变型,这些改进和变型也应视为本发明的保护范围。
Claims (8)
1.一种基于MQTT协议的软硬件数据传输方法,其特征在于,包括:
搭建MQTT服务器,建立MQTT服务器与MQTT客户端的连接,在建立连接的所述MQTT服务器和MQTT客户端之间进行数据传输;
所述连接的建立包括:
设置MQTT客户端的应答信息和连接状态的超时时间;
预设MQTT服务器发送的心跳消息和设置会话信息的清除条件;
创建会话消息发送规则并且设置消息质量;
创建连接过程和数据传输过程的回调机制,通过MQTT服务器以测试MQTT客户端。
2.根据权利要求1所述的基于MQTT协议的软硬件数据传输方法,其特征在于:
所述MQTT客户端的应答信息包括客户端ID、通信秘钥、协议标识和设备信息。
3.根据权利要求1所述的基于MQTT协议的软硬件数据传输方法,其特征在于:
所述连接状态的超时时间为:
所述MQTT服务器在第一时刻下向所述MQTT客户端发送信息,所述MQTT服务器在第二时刻接收到所述MQTT客户端返回的信息,所述第一时刻和第二时刻之间的差值为时刻差值,将所述时刻差值与预设的超时阈值进行比较,如所述时刻差值超出该预设超时阈值,则所述MQTT客户端与所述MQTT服务器连接超时。
4.根据权利要求1所述的基于MQTT协议的软硬件数据传输方法,其特征在于:
所述心跳消息为:
所述MQTT服务器根据不同时间节点向所述MQTT客户端发送信息,所述MQTT服务器根据接受到两次相邻的时间节点下的时间差与预设的时间阈值判断是否在区间内,是,则对应的当前MQTT客户端在线,否则,该MQTT客户端不在线。
5.根据权利要求1所述的基于MQTT协议的软硬件数据传输方法,其特征在于:
所述会话信息的清除条件为:
在所述MQTT客户端向所述MQTT服务器发起请求连接开始,到其连接中断或会话过期的即时消息,以选择是否将其清楚;
若是,判定所述MQTT客户端的在线情况,当MQTT客户端不在线时,所述MQTT服务器清除所述MQTT客户端的订阅主题的信息,当所述MQTT客户端重新与所述MQTT服务器建立连接时,生成新的订阅主题;若否,当所述MQTT客户端掉线后所述MQTT服务器不会清除会话,当重新连接后可以接收之前订阅主题的信息。
6.根据权利要求1所述的基于MQTT协议的软硬件数据传输方法,其特征在于:
创建会话消息发送规则并且设置消息质量:
设置质量等级,设置为0时,消息最多分发一次,消息发送完毕后立即删除;
设置为1,所述MQTT服务器至少发送一次,所述MQTT服务器将消息发出后存储,待所述MQTT客户端带所述应答信息回应,若,所述MQTT服务器没有接收到,则重新发送,直到回应到达后再把消息删除;
设置为2,所述MQTT客户端确保只接收到一次来自所述MQTT服务端的消息。
7.根据权利要求1所述的基于MQTT协议的软硬件数据传输方法,其特征在于:
所述创建连接过程和数据传输过程的回调机制为:通过编程语言的回调函数机制,设置连接丢失、接收消息和消息发送完成时的回调函数,所述回调函数包括:连接丢失回调函数、接收消息回调函数以及消息发送完成回调函数。
8.根据权利要求1所述的基于MQTT协议的软硬件数据传输方法,其特征在于:
通过MQTT服务端以测试MQTT客户端为:
测试所述MQTT客户端程序,启动JAVA程序,使用MQTT客户端实例调用发布方法,向指定主题发布消息,并后台打印出订阅的主题和接收的主题以及消息内容。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311215790.0A CN117294749A (zh) | 2023-09-20 | 2023-09-20 | 一种基于mqtt协议的软硬件数据传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311215790.0A CN117294749A (zh) | 2023-09-20 | 2023-09-20 | 一种基于mqtt协议的软硬件数据传输方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117294749A true CN117294749A (zh) | 2023-12-26 |
Family
ID=89243637
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311215790.0A Pending CN117294749A (zh) | 2023-09-20 | 2023-09-20 | 一种基于mqtt协议的软硬件数据传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117294749A (zh) |
-
2023
- 2023-09-20 CN CN202311215790.0A patent/CN117294749A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1856896B1 (en) | Transferring state information in a network | |
Loreto et al. | Known issues and best practices for the use of long polling and streaming in bidirectional http | |
US7010727B1 (en) | Method and system for negotiating compression techniques to be utilized in packet data communications | |
US8291022B2 (en) | Method and device for messaging | |
US8060640B2 (en) | Combining SIP requests with SIP responses | |
CN103535004B (zh) | 用于促进匿名音频和视频通信的方法和基于web的系统 | |
JP4109258B2 (ja) | Httpに基づく通信システムにおけるエラーメッセージングの方法 | |
CN100496043C (zh) | 获取会话初始协议网络节点状态的方法及系统 | |
US8341272B2 (en) | Method for improving a TCP data transmission in case the physical transmission medium is disconnected | |
WO2006133651A1 (en) | Communication method between communication devices and communication apparatus | |
US7747694B2 (en) | Low latency and assured delivery using HTTP | |
US9288174B2 (en) | Page-mode messaging | |
CN113162989A (zh) | 一种基于MQTT-WebSocket的消息收发方法 | |
CN112152914A (zh) | 一种基于北斗短报文的即时通信方法以及系统 | |
US7349384B2 (en) | Reliable one-way messaging over request-response transport protocols | |
Soua et al. | IoT application protocols optimisation for future integrated M2M-satellite networks | |
CN107147561B (zh) | 一种基于xmpp协议的即时通讯方法及系统 | |
CN107786607B (zh) | 一种消息重传方法、消息重传服务器及用户设备 | |
CN116599953B (zh) | 一种文件上传的方法、装置、系统、设备及可读存储介质 | |
EP3920035B1 (en) | Message transmission/reception method, communication device, and program | |
CN117294749A (zh) | 一种基于mqtt协议的软硬件数据传输方法 | |
JP2004254039A (ja) | メール通信中継システム、メール通信中継装置、メール通信中継方法及びメール通信中継用プログラム | |
US9525653B2 (en) | Enhanced wireless short message service | |
KR101527196B1 (ko) | 양방향 푸시 메시지 서비스 시스템 및 제어 방법 | |
CN115348258B (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 |