Advertisement

MQTT系列——Windows11下Eclipse Mosquitto简单介绍及简单使用

阅读量:

Eclipse Mosquitto简单介绍及简单使用

  • 说明
  • 下载安装
  • 简单使用

说明

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

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

Mosquitto项目还提供了一个C库来实现MQTT客户端,以及非常流行的Mosquitto_pub和Mosquitto_sub命令行MQTT客户端。

下载安装

下载地址

简单使用

1.开启Mosquitto服务器
进入mosqutto安装位置,按住Shift,右键鼠标点击空白处,打开Powershell,终端输入:
./mosquitto.exe -h 可查看相应的帮助
./mosquitto.exe -p 1883 开启MQTT服务,监听的地址是127.0.0.1,端口是1883

2.指令简单介绍

复制代码
    -c 指定配置文件路径
    -d 后台
    -h 显示帮助
    -p 指定端口号
    -v 监控日志
    
    

3.mosquitto_sub相关参数

复制代码
    -c 禁止’clean session’选项,即如果客户端断开连接,这个订阅仍然保留来接收随后到的QoS为1和2的消息,当改客户端重新连接之后,它将接收到已排在队列中的消息。建议使用此选项时,客户端id选项设为–id
     
    -d 开启debug选项
     
    -h 说明所连接到的域名,默认是localhost
     
    -i 客户端的ID号,如果没有指定,默认是mosquitto_pub_加上客户端的进程id,不能和–id_prefix同时使用。
     
    -I 指定客户端ID的前缀,与客户端的进程ID连接组成客户端的ID,不能喝–id同时使用。
     
    -k  给代理发送PING命令(目的在于告知代理该客户端连接保持且在正常工作)的间隔时间,默认是60s
     
    -p 说明客户端连接到的端口,默认是1883
     
    -P 指定密码用于代理认证,使用此选项时必须有有效的用户名。
     
    -q 指定消息的服务质量,可以为0,1,2,默认是0.
     
    –quiet 如果指定该选项,则不会有任何错误被打印,当然,这排除了无效的用户输入所引起的错误消息。
     
    -t 指定订阅的消息主题,允许同时订阅到多个主题
     
    -u 指定用户名用于代理认证。
     
    -v, 冗长地打印收到的消息。若指定该选项,打印消息时前面会打印主题名——“主题 消息内容”,否则,只打印消息内容
     
    –will-payload 如果指定该选项,则万一客户端意外和代理服务器断开,则该消息将被保留在服务端并发送出去,该选项必须同时用–will-topic指定主题。
     
    –will-qos 指定Will的服务质量,默认是0.必须和选项 –will-topic同时使用.
     
    –will-retain 如果指定该选项,则万一客户端意外断开,已被发送的消息将被当做retained消息。必须和选项 –will-topic同时使用.
     
    –will-topic 指定客户端意外断开时,Will消息发送到的主题。
    
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-08-17/awdRTuGe1Y3rgyBLJIkl9EjzPZvq.png)

4.mosquitto_pub相关参数

复制代码
    -d 开启debug选项
     
    -f 把一个文件的内容做为消息的内容发送。经测试,支持txt文件,不支持doc等其他形式文件。
     
    -h 说明所连接到的域名,默认是localhost
     
    -i 客户端的ID号,如果没有指定,默认是mosquitto_pub_加上客户端的进程id,不能和–id_prefix同时使用。
     
    -I 指定客户端ID的前缀,与客户端的进程ID连接组成客户端的ID,不能和–id同时使用。
     
    -l 从总段读取输入发送消息,一行为一条消息,空白行不会被发送。
     
    -m 从命令行发送一条消息,-m后面跟发送的消息内容。
     
    -n 发送一条空消息。
     
    -p 连接的端口号,默认是1883.
     
    -P 指定密码用于代理认证,使用此选项时必须有有效的用户名。
     
    -q 指定消息的服务质量,可以为0,1,2,默认是0.
     
    –quiet:如果指定该选项,则不会有任何错误被打印,当然,这排除了无效的用户输入所引起的错误消息。
     
    -r 如果指定该选项,该条消息将被保留做为最后一条收到的消息。下一个订阅消息者将能至少收到该条消息。
     
    -s 从标准输入接收传输的消息内容,所有输入做为一条消息发送。
     
    -t 指定消息所发布到哪个主题。
     
    -u 指定用户名用于代理认证。
     
    –will-payload 如果指定该选项,则万一客户端意外和代理服务器断开,则该消息将被保留在服务端并发送出去,该选项必须同时用–will-topic指定主题。
     
    –will-qos 指定Will的服务质量,默认是0.必须和选项 –will-topic同时使用.
     
    –will-retain 如果指定该选项,则万一客户端意外断开,已被发送的消息将被当做retained消息。必须和选项 –will-topic同时使用.
     
    –will-topic 指定客户端意外断开时,Will消息发送到的主题
    
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-08-17/ABVyIxQrOS6egtPHW5o7pL93CT4j.png)

5.简单测试
一个终端

复制代码
    .\mosquitto_sub.exe -v -t TopicName1
    
    
    bash

另一终端

复制代码
    .\mosquitto_pub.exe -t TopicName1 -m helloworld
    
    
    bash

请添加图片描述
注:仅供个人学习,若有侵权,联系删除!

全部评论 (0)

还没有任何评论哟~