MQTT协议简介以及简单应用

MQTT协议简介

1、MQTT协议

实现MQTT协议需要MQTT客户端与MQTT服务端通讯完成,在这个过程中,MQTT协议中存在着三个角色:发布者、代理(MQTT服务端)、订阅者。其中,MQTT客户端既可以是发布者,也可以是订阅者,两者可以同时存在。
MQTT传输的消息分为:主题(Topic)和负载(payload)两部分。
(1)Topic,可以理解为是钥匙和锁(订阅的主题是锁,发布的主题是钥匙),如果订阅和发布的是同一个主题,订阅者就可以收到该主题的内容。
(2)payload,是MQTT传输消息的内容。

2、发布/订阅

MQTT协议使用的是发布/订阅消息模式。其中一个MQTT客户端订阅了某一个主题,等待MQTT服务器转发。假设又有一个MQTT客户端发布了有关这个主题的消息,MQTT服务端就会在订阅的主题中寻找是否有客户端订阅了这个主题。假如有,MQTT服务端就会转发这个消息到订阅了这个主题的MQTT客户端。

3、MQTT协议的三种消息发布

1、QoS0(至多一次):消息发布完全依赖底层TCP/IP网络,如果此时MQTT客户端在消息推送时没有连接上MQTT服务端,就会导致消息接收不到,时候连接上也不会接收到数据。
2、QoS1(至少一次):确保消息到达,但消息重复可能会发生。
3、QoS2(只有一次):确保用户收到消息而且只收到一次消息。

4、MQTT客户端与服务端

一个MQTT客户端可以做到:
1、发布其他客户端可能会订阅的信息
2、订阅其它客户端发布的消息
3、退订或删除应用程序的消息
4、断开与服务器连接

一个MQTT服务端可以做到:
1、接受来自客户的网络连接
2、接受客户发布的应用信息
3、处理来自客户端的订阅和退订请求
4、向订阅的客户转发应用程序消息

MQTT协议的应用

接下来会通过EMQS官网提供的MQTT服务器与MQTT X官网提供的MQTT客户端实现一次简单的通讯。
EMQS官网:https://www.emqx.io/zh/downloads?os=Windows
MQTT X官网:https://mqttx.app/zh

1、在EMQX官网中下载Windows系统的emqx。安装完成后,打开该文件,进入bin文件夹。打开终端,输入./emqx start
MQTT协议简介以及简单应用_第1张图片
如图所示,MQTT就开启成功了,这时可以访问官网提供的MQTT管理控制台(http://127.0.0.1:18083/)。
MQTT协议简介以及简单应用_第2张图片
默认的账号密码是:admin public。进入之后就能看到一些基本信息。
MQTT协议简介以及简单应用_第3张图片

2、在MQTT X官网中下载开源的Windows版本的MQTTX,用于充当MQTT客户端。
下载完成后,如图所示,创建一个连接、主题:
MQTT协议简介以及简单应用_第4张图片
MQTT协议简介以及简单应用_第5张图片

我这里创建了一个hello的主题,点击发布
MQTT协议简介以及简单应用_第6张图片
可以看到,MQTT客户端发出一条主题为hello,负载为Hello MQTT的消息,而且MQTT客户端也接收到了来自MQTT服务端转发的消息。如果不是同一个主题呢?
MQTT协议简介以及简单应用_第7张图片
可以看到,消息虽然发布了,但是MQTT客户端并没有接收到hello1主题的消息。

结束

MQTT协议的简介以及简单应用到这里就结束了,下次实现Java代码搭建MQTT客户端,实现消息的订阅/发布。

你可能感兴趣的:(mqtt)