下载地址:https://mosquitto.org/download/
进入下载页面,选择source中第一个下载mosquitto-1.6.3.tar.gz (当然,版本可能会更新,下载新的版本就好)
CentOS的软件安装
sudo yum -y install libssl-dev
sudo yum -y install libc-ares-dev
sudo yum -y install uuid-dev
sudo yum -y install docbook-style-xsl
在Ubuntu系统中
sudo apt-get install libssl-dev
//解压--> 进入目录 --> make 编译 --> 安装
tar zxvf mosquitto-1.6.10.tar.gz
cd mosquitto-1.6.10
make
sudo make install
版本 openssl 1.0.1 mosquitto 1.5.5(openssl和mosquitto要对应)
编译过程找不到uuid/uuid.h
解决办法,安装epel
sudo yum install epel-release
更新(更新时间稍微长一些,耐心等待)
yum update
重新试一下:
sudo yum -y install uuid-dev
我的用这个上面那个不可以
yum install uuid uuid-devel
yum install libuuid libuuid-devel
编译找不到openssl/ssl.h 【解决方法】——安装openssl
sudo yum yum install libssl-dev
Error: Invalid user 'mosquitto'.
在shell窗口中执行:useradd mosquitto 命令就可以了。
如果出现error while loading shared libraries: libmosquitto.so.1: cannot open shared object file: No such file or directory
//创建链接
sudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1
//更新链接
sudo ldconfig
libmosquitto客户端编程(发布消息,订阅消息)
在安装mosquitto成功后,可以在/usr/local/lib文件夹中有libmosquitto.so.1等文件,如下图所示:
6.mosquitto使用
配置参数
将/etc/mosquitto/mosquitto.conf.example 复制一份为mosquitto.conf
cp /etc/mosquitto/mosquitto.conf.example mosquitto.conf
设置用户名和密码
找到用户密码文件在安装bin下:
1: 打开mosquitto.conf文件,找到allow_anonymous节点,这个节点作用是,是否开启匿名用户登录,默认是true。打开此项配置(将前面的 # 号去掉)之后将其值改为true
修改前:#allow_anonymous
修改后:allow_anonymous false
2: 找到password_file节点,这个节点是告诉服务器你要配置的用户将存放在哪里。打开此配置并指定pwfile.example文件路劲(注意是绝对路劲)
修改前:#password_file
修改后:password_file /etc/mosquitto/pwfile.example (这里的地址根据自己文件实际位置填写)
3: 创建用户名和密码、打开命令窗口 键入如下命令:
mosquitto_passwd -c /etc/mosquitto/pwfile.example admin
提示连续两次输入密码、创建成功。命令解释: -c 创建一个用户、/etc/mosquitto/pwfile.example 是将用户创建到 pwfile.example 文件中、admin 是用户名。
4: 创建mosquitto用户。在命令窗口键入如下命令:
mosquitto_passwd /etc/mosquitto/pwfile.example mosquitto
同样连续会提示连续输入两次密码。注意第二次创建用户时不用加 -c 如果加 -c 会把第一次创建的用户覆盖。
至此两个用户创建成功,此时如果查看 pwfile.example 文件会发现其中多了两个用户
进入命令行界面,用cd 命令进入mosquitto的安装目录(也就是我们make 的位置目录)
(1)启动mosquitto服务器
mosquitto -c /etc/mosquitto/mosquitto.conf
订阅主题
mosquitto_sub -h 127.0.0.1 -p 1883 -u root -P root -t topicname -h 主机IP -p端口 -u用户名 -P密码 -t 主题
推送消息
mosquitto_pub -h 127.0.0.1 -p 1883 -u root -P root -t topicname -m "发送的消息内容"