1、接触的缘由html
公司最近要求接手关于系统集成道闸的部分,其中系统和第三方系统是经过mqtt进行交互的。因此提早了解一下mqtt的基础概念。java
2、mqtt的基本概念windows
1. mqtt的定义设计模式
Message Queuing Telemetry Transport,消息队列遥测传输协议。它是基于tcp/ip协议的,同时它的设计模式是采用的发布/订阅模式。服务器
2.mqtt协议中的成员:发布者、代理和订阅者。tcp
(1)发布者:发布者能够发布信息给其它客户端(订阅者)订阅,它发布的一个主题消息能够被订阅屡次。工具
(2)代理:代理又称为服务器,能够接受来自发布者或订阅者的链接,同时可以处理订阅者的订阅或退订请求,还可以将发布者发布的消息推送给订阅者。测试
(3)订阅者:可以接受来自发布者发布的信息,可以退订。ui
3.经常使用概念spa
(1)订阅:订阅包含主题筛选器(Topic Filter)和服务质量(QoS)。订阅能够与会话关联,一个会话能够关联多个订阅。
(2)会话:客户端与服务器创建链接就是一个会话。
(3)主题:消息的类型,订阅者经过订阅的主题接受发布者发布的消息。
(4)负载:订阅者接收到的消息。
(5)服务质量:发布消息的质量,保证消息传递的次数。
a.至多一次:只发送一次,消息可能会丢失,在传感器传输数据时,数据会定时刷新发送,数据的丢失不是那么的重要,可使用该服务质量。
b.至少一次:保证订阅者可以接收到发送的消息,这种状况下消息可能重复。
c.只有一次:确保订阅者接收消息一次,不会重复也不会丢失。
3、安装EMQ服务器
1.我使用的是windows 10版本的。点击这里进入下载页面。
2.下载后解压,进入解压文件夹,在cmd中输入bin\emqx.cmd start启动服务器。
3.个人服务器是安装在本地的,在Web中输入127.0.0.1:18083能够显示控制台。
4.客户端测试工具-MQTTBox。
4、java测试订阅发布,在这里就不细述,网上博客不少。
5、相关博客
https://www.runoob.com/w3cnote/mqtt-intro.html