文章目录
- 一、概念梳理
- 二、下载与安装
- 三、关于配置文件的一些重要说明
- 四、配置登录账号和密码
参考: 博客
一、概念梳理
- Mosquitto是一款实现了消息推送协议MQTT 3.1的开源消息代理软件,提供轻量级的、支持可订阅/可发布的消息推送模式,是设备与设备之间的短消息通信变得简单,广泛应用于低功耗传感器、手机(app消息推送是场景之一)、嵌入式电脑、微型控制器等移动设备。
- 那什么是MQTT,他的英文全称Message Queuing Telemetry Transport,翻译过来就是“消息队列遥测传输”,是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。它工作在 TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议。目前支持MQTT的服务器中间件有EMQTT、Mosquitto、Apollo。本章讲的就Mosquitto。
- MQTT的协议内容有很多,其中一个一定要知道,就是“消息发布服务质量”,只有三个值分别是:
QoS 0:“至多一次”,消息发布完全依赖底层 TCP/IP 网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。
QoS 1:“至少一次”,确保消息到达,但消息重复可能会发生。
QoS 2:“只有一次”,确保消息到达一次。这一级别可用于如下情况,在计费系统中,消息重复或丢失会导致不正确的结果。
二、下载与安装
-
Mosquitto存在很多版本,如果想体验比较新版本可以上github,但是比较麻烦的是需要自己去编译成windows文件,编译需要用到cmake软件,可以参照其他博主的文章:博客
-
官方后面提供了比较稳定的window安装版本,安装完成后可以直接使用,并且自动添加成 windows服务,非常方便,下载路径:下载地址
-
双击下载好的程序
-
点击Next
-
点击Next
-
选择安装路径,点击Install
-
在弹出的对话框中选择同意,然后点击安装
-
安装完成点击关闭
-
点击Finish完成安装
-
同时按“Windows 徽标键+R键”,打开运行框
-
输入“services.msc”按回车,快速调出“服务”,如下图示:
-
找到Mosquitto Broker,点击启动此服务
-
Mosquitto服务默认占用 1883端口,所以可不在配置文件中显式设置。
三、关于配置文件的一些重要说明
- 配置文件在安装目录下的mosquitto.conf,默认情况下不做任何修改,就可以启动mosquitto。
- 配置说明中出现的地址例如:“/var/run/mosquitto”,“/var/log/messages”,都是相对路径,相对于系统盘根目录。这个地方很重要,他可不是相对于安装目录的根目录。例如“/var/run/mosquitto”表示的是“c:\var\run\mosquitto”。
- 安装目录的完整路径中,不能出现空格,否则在命令行就无法通过。Mosquitto默认安装路径是在“C:\Program Files\mosquitto”,这里面的“Program Files”就存在空格,导致很多问题,这个也要特别注意。所以后来我改为安装在“C:\MosquittoTest”
四、配置登录账号和密码
-
如果想方便测试可以下载安装MQTT客户端
-
在配置文件mosquitto.conf中,任意位置加入下面文本,保存退出(我说的全新安装的情况下,如果是维护已经使用很久的系统,可在配置文件中找到对应的属性进行更改)
#设置不允许匿名登录 allow_anonymous false #设置账户密码文件位置为C:\MosquittoTest\pwfile.example password_file /MosquittoTest/pwfile.example
-
在配置文件中选择查找(listener port-number),添加监听端口号1883
-
重启mosquitto服务配置文件的修改才能生效。为了方便调试和操作,我们后面的操作全部通过命令行模式进行。
-
插入新用户名及密码,输入密码时界面是不会显示的,直接输入后回车就可以,需要连续输入两次。保证pwfile.example的路径和上面的配置一致。下面打开CMD并进入mosquitto根目录输入:
mosquitto_passwd -c /MosquittoTest/pwfile.example FirstUserName (使用-c 参数会导致清空密码文件,重新插入用户) mosquitto_passwd /MosquittoTest/pwfile.example SecondUserName (不使用-c 表示追加用户,不影响旧用户)
-
创建成功后pwfile.example会出现刚刚添加的用户信息。
-
启动mosquitto 进行测试。
首先启动第一个cmd窗口启动服务:mosquitto.exe -c mosquitto.conf
然后启动第二个cmd窗口订阅’dissun/topic’主题(其中***是自己的账号,…是自己的密码):
`mosquitto_sub -u *** -P ... -t 'dissun/topic' -v`
最后启动第三个cmd窗口发布订阅’腰疼不加班’信息:mosquitto_pub -u *** -P … -t ‘dissun/topic’ -m ‘毕小姐不听话’
-
服务器开放1883端口访问