北岛夜话
原创工业智能控制领域(PLC、单片机/嵌入式、机器人、通信、机器视觉)的技术及经验分享。
文章545 浏览8634462

基于NanoMQ搭建MQTT服务器

MQTT是英文Message Queue Telemetry  Transport的缩写,中文翻译为:消息队列遥测传输协议。它是一个基于客户端/服务端架构的、发布/订阅模式的消息传输协议,有三种角色:消息发布者(Publisher)、消息订阅者(Subscriber)和消息代理(Broker)。其中,消息发送者和消息订阅者都属于客户端角色(换句话说:客户端既可以订阅消息,也可以发送消息),消息代理属于服务器角色。三者的关系如下图所示:

MQTT图解.png

具体来说:

MQTT客户端:使用MQTT协议的设备(或程序),其主要工作包括:

  1. 与服务器建立连接;

  2. 发布消息

  3. 订阅其它客户端发布的消息;

  4. 退订或删除应用程序的消息;

  5. 与服务器断开连接;

MQTT服务器:又称为"消息代理",它位于消息发布者和订阅者之间,其主要工作包括:

  1. 接受客户端的连接请求并维护链接;

  2. 接收客户发布的信息;

  3. 处理来自客户端的订阅和退订请求;

  4. 向订阅的客户端转发消息;

以上是对MQTT协议的简单介绍,今天这篇文章先让大家有个感性认识,我们使用NanoMQ来搭建一个MQTT服务器。

MQTT的服务器软件很多,比如:

EMQX(www.emqx.com)、HiveMQ(www.hivemq.com)、Mosquitto(www.mosquitto.org)、RabbitMQ(www.rabbitmq.com)、VerneMQ(vernemq.com)、FlashMQ(www.flashmq.org)、NanoMQ(nanomq.io/zh)等等。其中后两者都是轻量级的、跨平台、多线程服务器软件,均支持MQTT 3.1、3.1.1和5.0协议版本。

下面以NanoMQ为例,介绍在树莓派4B上安装该软件的步骤:

1、配置NanoMQ的Apt源

curl -s https://assets.emqx.com/scripts/install-nanomq-deb.sh | sudo bash

2、安装NanoMQ

sudo apt-get install nanomq

3、启动NanoMQ

nanomq start

我在树莓派上实际安装过程的图片如下:

1.png

2.png

3.png

初次启动时,由于没有配置文件(/etc/nanomq.conf),可能会有错误提示,但并不影响其运行。后期我们会创建该配置文件并对NanoMQ进行配置。

为了测试NanoMQ的功能,我们还需要一个MQTT客户端软件。这里使用MQTTX(可以去mqttx.app/zh下载)进行测试。

启动MQTTX后先新建一个连接,名称为“test_nanomq”,服务器的地址填树莓派的IP地址,端口采用默认值,其它项先不设置,单击右上方【连接】,会创建一个连接并主动与MQTT消息代理(本例程就是树莓派的NanoMQ)建立通信,如下图所示:

4.png

创建完成后,会显示连接状态,绿色表示成功建立连接。

单击右侧的【添加订阅】可创建订阅主题,如下图所示:

5.png

假设我们订阅1号温度传感器,主题为:sensor/1/temperature,服务质量(QoS)为“至少一次”,如下图所示:

6.png

在右下角可以发送主题。

假设我们发送“sensor/1/temperature”主题,温度值为25.5摄氏度。由于我们也订阅了该主题,因此也会收到相应的信息,如下图所示:

7.png

好了,关于基于NanoMQ大家MQTT服务器并进行测试就先介绍到这里。

我的书《西门子S7-1200/1500 PLC SCL语言编程 ——从入门到精通》从硬件到软件,比较详细的介绍了SCL语言的编程,感兴趣的话可以扫描下面的二维码查看:




取消

感谢您的支持,欢迎常来看看!

扫码支持
一点动力,多少随意

打开支付宝扫一扫,即可进行扫码打赏哦

发表评论