一、Mosquitto介绍
Eclipse Mosquitto是一个开源的MQTT消息代理(服务器)软件。提供轻量级的,支持可发布/可订阅的的消息推送模式,使设备对设备之间的短消息通信变得简单,比如现在应用广泛的低功耗传感器,手机、嵌入式计算机、微型控制器等移动设备。
二、下载
点击下面的网址进行下载,傻瓜式安装
三、指令介绍
(1)开启Mosquitto服务器
进入mosqutto下载文件位置,按住Shift
,右键鼠标点击空白处,然后打开Powershell
,正常打开一个终端软件即可;
- 输入
./mosquitto.exe -h
可以查看相应的帮助; - 输入
./mosquitto.exe -p 1883
,就开启了MQTT服务,监听的地址是127.0.0.1
,端口是1883
;
(2)Mosquitto指令
-c 指定配置文件路径
-d 后台运行
-h 显示帮助
-p 指定端口号,不推荐跟-c配置文件指定端口号一起使用
-v 监控日志
(3)mosquitto_pub命令
发布使用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消息发送到的主题
.\mosquitto_pub.exe -t sub -m 1234
(4)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消息发送到的主题。
.\mosquitto_sub.exe -v -t pub
//pub为订阅的主题
(5)mosquitto_passwd命令
man mosquitto_passwd 查看 mosquitto_passwd的完整用法。
用法:
mosquitto_passwd [-c | -D] passwordfile username
mosquitto_passwd -b passwordfile username password
mosquitto_passwd -U passwordfile
参数说明:
-b: 以batch mode运行,这样password可以在命令行中提供。这样做虽然用起来方便,但是有风险,因为password是可见的,命令行的历史记录也可以看到。
-c: 创建一个新的password文件,如果文件已经存在,会被新文件替换
-D: 从password文件删除一个指定的用户
-U: 将一个纯文本的password文件转为hash 密码文件。它不会检查文件是否已经做过hash,也就是说如果文件已经做了hash,它会继续以此文件为基础做一次hash并导致此password文件不可用。
passwordfile: 需要修改的password文件名称
username: 将要add/update/delete的用户名
password:密码
例子:添加一个用户到新的password 文件: