在工作中所负责软件需要与不同种类软件进行交互,涉及的通信协议多种多样,对开发十分不利。此种情形与物联网类似,中枢软件需要接收不同传感器的数据,通信协议很难做到统一。因此考虑mqtt协议作为通信的统一协议,减少开发协议的工作量。
一、MQTT是什么
MQTT是一个由IBM主导开发的物联网传输协议,它被设计用于轻量级的发布/订阅式消息传输,旨在为低带宽和不稳定的网络环境中的物联网设备提供可靠的网络服务。它的核心设计思想是开源、可靠、轻巧、简单,具有以下主要的几项特性:
-
非常小的通信开销(最小的消息大小为 2 字节);
-
支持各种流行编程语言(包括C,Java,Ruby,Python 等等)且易于使用的客户端;
-
支持发布 / 预定模型,简化应用程序的开发;
-
提供三种不同消息传递等级,让消息能按需到达目的地,适应在不稳定工作的网络传输需求。
二、 EMQX windows部署
(1) EMQX简介
MQTT Broker 也称为 MQTT 消息服务器,它可以是运行了 MQTT 消息服务器软件的一台服务器或一个服务器集群。MQTT Broker 负责接收来自客户端的网络连接,并处理客户端的订阅/取消订阅(Subscribe/Unsubscribe)、消息发布(Publish)请求,同时也会将客户端发布的消息转发给其他订阅者。
EMQX是一种MQTT消息服务器,EMQ X (Erlang/Enterprise/Elastic MQTT Broker) 是基于 Erlang/OTP 语言平台开发,支持大规模连接和分布式集群,发布订阅模式的开源 MQTT 消息服务器。
emqx提供了三种消息发布服务质量:
QoS 0:服务质量 0,最多传输一次。
QoS 1:服务质量1,至少传输一次。
QoS 2:服务质量2,仅仅传输一次。
mqtt集群架构如下:
(2) EMQX 安装部署
下载:进入EMQX 官网:https://www.emqx.cn/downloads#broker
将压缩包解压后即可, 在解压缩的目录下进入bin文件里(D:\emqx-windows-4.2.7\emqx\bin),启动命令行,执行emqx start, emqx服务器就启动了。
启动EMQX web端, 访问localhost:18083
默认用户名:admin,密码:public
三、MQTT.fx 测试
1、 下载安装MQTT.fx
下载地址:下载地址: http://www.jensd.de/apps/mqttfx/
下载文件为.exe文件,按步骤安装即可
2、 MQTT.fx 连接EMQ X服务器
EMQX 的i端口 默认为1883
如果需要修改,打开文件D:\emqx-windows-4.2.7\emqx\bin\emqx.conf
3、MQTT.fx 订阅消息
在EMQ web端 Dashboard 发布一条消息, MQTT.fx端订阅
(1) Dashboard连接服务器
(2) Dashboard发布消息
(3) MQTT.fx 订阅
也可以进行MQTT.fx发布消息,Dashboard接收。
参考链接:https://blog.csdn.net/CHENNNNN1/article/details/107928815