Mosquitto是一个实现了MQTT协议的代理服务器,由MQTT协议创始人之一的Andy Stanford-Clark开发,它为我们提供了非常棒的轻量级数据交换的解决方案。本文主要介绍如何在centos7上安装Mosquitto,其他解决方案我们再另外讲解
获取&安装
在Linux系统上安装Mosquitto,建议大家使用源码安装,最新的源码可从 http://mosquitto.org/files/source/ 地址中获取。这里我使用的是1.6.9版本,首先我们使用下面的命令下载源码包
1 | wget https://mosquitto.org/files/source/mosquitto-1.6.9.tar.gz |
使用解压缩命令,解压源码
1 | tar -xvzf mosquitto-1.6.9.tar.gz |
进入源码目录
1 | cd mosquitto-1.6.9 |
执行编译命令
1 | make |
编译过程中可能会遇到一些错误,一般是缺少openssl库或者其他库导致的,自行百度安装重新编译即可
执行安装命令
1 | make install |
安装完成后,我们执行
1 | mosquitto |
测试一下,一切正常情况下会输出
1 | 1614180185: mosquitto version 1.6.9 starting |
设置用户名和密码
找到mosquitto系统目录,默认安装后在/etc/mosquitto
1: 打开mosquitto.conf文件,找到allow_anonymous
节点,这个节点作用是,是否开启匿名用户登录,默认是true。打开此项配置(将前面的 # 号去掉)之后将其值改为true
修改前:
1 | #allow_anonymous |
修改后:
1 | allow_anonymous false |
2: 找到password_file节点,这个节点是告诉服务器你要配置的用户将存放在哪里。打开此配置并指定pwfile.example文件路劲(注意是绝对路劲)
修改前:
1 | #password_file |
修改后:
1 | password_file /etc/mosquitto/pwfile.example |
3: 创建用户名和密码、打开命令窗口 键入如下命令:
1 | mosquitto_passwd -c /etc/mosquitto/pwfile.example admin |
提示连续两次输入密码、创建成功。命令解释: -c 创建一个用户、/etc/mosquitto/pwfile.example 是将用户创建到 pwfile.example 文件中、admin 是用户名。
4: 创建mosquitto用户。在命令窗口键入如下命令:
1 | mosquitto_passwd /etc/mosquitto/pwfile.example mosquitto |
同样连续会提示连续输入两次密码。注意第二次创建用户时不用加 -c 如果加 -c 会把第一次创建的用户覆盖。
至此两个用户创建成功,此时如果查看 pwfile.example 文件会发现其中多了两个用户。
1 | mosquitto -v -c mosquitto.conf |
结语
到此最简单的MQTT Broker就搭建好了,我们可以使用一些测试工具进行连接测试了,也可以使用ESP8266模块进行远程控制测试一下,智能家居的桥梁已经搭建好了,接下来我们会讲解如何将ESP8266或者其他网络设备接入到我们的Broker,使用Homeassistant进行控制