> 文档中心 > 从0到1快速搭建MQTT测试环境

从0到1快速搭建MQTT测试环境

文章目录

    • 1. mosquitto概述
    • 2. 下载MQTT部署软件
    • 3. 快速上手mosquitto
      • 3.1 启动mqtt broker
      • 3.2 订阅主题
      • 3.3 发布主题
      • 3.4 简单的订阅/发布工作流

1. mosquitto概述

Eclipse mosquitto是一个开源(EPL/EDL许可的)消息代理,它实现了MQTT协议版本5.0、3.1.1和3.1。mosquito是轻量级的,适用于所有设备,从低功耗的单板计算机到完整的服务器。

MQTT协议提供了使用发布/订阅模型执行消息传递的轻量级方法。这使得它适用于物联网消息传递,如低功耗传感器或移动设备,如手机、嵌入式计算机或微控制器。

mosquito to项目还提供了一个用于实现MQTT客户机的C库,以及非常流行的mosquito to_pub和mosquito to_sub命令行MQTT客户机。

2. 下载MQTT部署软件

下载地址:传送门

3. 快速上手mosquitto

3.1 启动mqtt broker

启动命令行工具,切换到mosquitto安装目录,执行如下命令,启动broker

mosquitto.exe -v

默认开启的端口为1883。

命令详情如下:

mosquitto [-c config file] [ -d | --daemon ] [-p port number] [-v]

-c 指定配置文件路径,默认配置路径为安装目录下的mosquitto.conf
-d 启动时进入后台运行
-p 指定端口,默认为1883
-v 开启日志输出

因电脑配置问题,这里使用自定义端口测试

#mosquitto.exe -v -p 69691647942133: mosquitto version 2.0.14 starting1647942133: Using default config.1647942133: Starting in local only mode. Connections will only be possible from clients running on this machine.1647942133: Create a configuration file which defines a listener to allow remote access.1647942133: For more details see https://mosquitto.org/documentation/authentication-methods/1647942133: Opening ipv4 listen socket on port 6969.1647942133: Opening ipv6 listen socket on port 6969.1647942133: mosquitto version 2.0.14 running

3.2 订阅主题

.\mosquitto_sub.exe -t sensors/temperature -q 1 -p 6969

-t 指定topic,这里为传感器温度值 sensors/temperature
-q 指定qos质量,这里为1
-p 指定端口,这里为6969

命令执行后,broker的日志描述如下:

1647942590: New connection from 127.0.0.1:1746 on port 6969.1647942590: New client connected from 127.0.0.1:1746 as auto-651BD76A-09A1-67FD-1DF9-AF36BEADB2D0 (p2, c1, k60).1647942590: No will message specified.1647942590: Sending CONNACK to auto-651BD76A-09A1-67FD-1DF9-AF36BEADB2D0 (0, 0)1647942591: Received SUBSCRIBE from auto-651BD76A-09A1-67FD-1DF9-AF36BEADB2D01647942591:     sensors/temperature (QoS 1)1647942591: auto-651BD76A-09A1-67FD-1DF9-AF36BEADB2D0 1 sensors/temperature1647942591: Sending SUBACK to auto-651BD76A-09A1-67FD-1DF9-AF36BEADB2D0

auto-651BD76A-09A1-67FD-1DF9-AF36BEADB2D0 - 连接成功后,broker分配的会话ID
CONNACK:对Connect命令的响应
SUBSCRIBE :客户端发起的订阅请求
SUBACK :broker对客户端auto-651BD76A-09A1-67FD-1DF9-AF36BEADB2D0的SUBSCRIBE命令的反馈

3.3 发布主题

.\mosquitto_pub.exe -t sensors/temperature -m 32 -q 1 -p 6969

-t 指定topic,这里为传感器温度值 sensors/temperature
-q 指定qos质量,这里为1
-p 指定端口,这里为6969
-m指定消息,这里消息为32

命令执行后:

  • broker的日志输出如下
1647942676: New connection from 127.0.0.1:1914 on port 6969.1647942676: New client connected from 127.0.0.1:1914 as auto-BADB5BE4-8FF4-C9F8-DD05-955CEC58CA3D (p2, c1, k60).1647942676: No will message specified.1647942676: Sending CONNACK to auto-BADB5BE4-8FF4-C9F8-DD05-955CEC58CA3D (0, 0)1647942676: Received PUBLISH from auto-BADB5BE4-8FF4-C9F8-DD05-955CEC58CA3D (d0, q1, r0, m1, 'sensors/temperature', ... (2 bytes))1647942676: Sending PUBLISH to auto-651BD76A-09A1-67FD-1DF9-AF36BEADB2D0 (d0, q1, r0, m1, 'sensors/temperature', ... (2 bytes))1647942676: Sending PUBACK to auto-BADB5BE4-8FF4-C9F8-DD05-955CEC58CA3D (m1, rc0)1647942676: Received PUBACK from auto-651BD76A-09A1-67FD-1DF9-AF36BEADB2D0 (Mid: 1, RC:0)1647942676: Received DISCONNECT from auto-BADB5BE4-8FF4-C9F8-DD05-955CEC58CA3D1647942676: Client auto-BADB5BE4-8FF4-C9F8-DD05-955CEC58CA3D disconnected.
  • 订阅的客户端日志输出如下:
PS E:\Tools\mosquitto> .\mosquitto_sub.exe -t sensors/temperature -q 1 -p 696932

可以看到,订阅客户端已经收到了发布者发布的消息:温度值32

3.4 简单的订阅/发布工作流

在这里插入图片描述

关注博主,可看到博主最新相关博文!