mosquitto基本使用

一、Mosquitto 介绍

  一款实现了消息推送协议 MQTT v3.1 的开源消息代理软件,提供轻量级的,支持可发布/可订阅的的消息推送模式,使设备对设备之间的短消息通信变得简单,比如现在应用广泛的低功耗传感器,手机、嵌入式计算机、微型控制器等移动设备。一个典型的应用案例就是 Andy Stanford-ClarkMosquitto(MQTT协议创始人之一)在家中实现的远程监控和自动化。并在 OggCamp 的演讲上,对MQTT协议进行详细阐述。

官          网: http://mosquitto.org/

客户端实现: http://www.eclipse.org/paho/downloads.php

二、获取&安装

  Mosquitto提供了Windows、Linux以及qnx系统的版本,安装文件可从 http://mosquitto.org/files/binary/ 地址中获取。Windows系统下的安装过程非常简单,我们甚至可以把Mosquitto直接安装成为系统服务;但是,在实际应用中,我们更倾向于使用Linux系统的服务器,接下来我们就将重点介绍Linux版Mosquitto的安装方法。

  在Linux系统上安装Mosquitto,本人建议大家使用源码安装模式,最新的源码可从 http://mosquitto.org/files/source/ 地址中获取: 本实列使用的是 mosquitto-1.4.tar.gz

1.将该压缩包移动至指定目录,解压源码包

tar -xvf mosquitto-1.4.tar.gz

2.编译安装

当前的程序目录可直接编译,在编译之前需根据需要做一定的配置,否则会出现 xxx.h找不到的情况。缺少相应的工具可以通过如下命令实现安装。

yum install gcc-c++
yum install cmake
yum install openssl-devel //mosquitto默认支持openssl
yum install libuuid-devel

3.安装

在解压好的目录"/mosquitto1.4"下执行如下命令:

make
make install

有出错的情况可以视情况而定,或者卸载重装。

程序文件默认安装到以下位置

mosquitto:  /usr/local/sbin

configuration: /etc/mosquitto

utility command: /usr/local/bin

三、简单使用

在系统内添加一个用户,是mosquitto的默认配置用户,

groupadd mosquitto
useradd -g mosquitto mosquitto

启动、与停止mosquitto:

mosquitto -c /etc/mosquitto/mosquitto.conf
ps -aux | grep mosquitto

使用该命令,选择指定的配置文件—— etc/mosquitto/mosquitto.conf 即可运行成功;

订阅消息:

mosquitto_sub -t mqtt

订阅主题为mqtt的消息。

发布消息:

mosquitto_pub -t mqtt -h localhost -m "new message"

此前订阅消息的用户就会收到:new message

四、用户配置

mosquitto中可以添加多个用户,只有使用用户名和密码登陆服务器才允许用户进行订阅与发布操作。可以说用户机制是mosquitto重要的安全机制,增强服务器的安全性。
用户与权限配置需要修改3处地方:

1、mosquitto中最重要的配置文件mosquitto.conf(.example)

2、pwfile.example (保存用户名与密码)
3、aclfile.example (保存权限配置)

新增用户:

 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 是用户名。

五、用户权限配置

Mosquitto 权限是根据 topic 控制的、类似与目录管理。您可以设定每个用户订阅/发布权限、也可以设定每个用户可访问的topic范围、从而达到权限控制的目的。

打开配置文件 aclfile.example 在其中添加如下配置信息,为admin配置topic的发布、订阅权限:

user admin
topic read aaa/#
topic read bbb/#
topic write aaa/#
topic write bbb/#

修改 Mosquitto.conf 配置选项

    打开mosquitto.conf文件,找到acl_file节点。打开配置做如下修改:
    修改前:#acl_file
    修改后:acl_file /etc/mosquitto/aclfile.example 根据自己文件实际位置填写

主题为aaa、bbb开头的都可以通过admin用户访问。

全文中涉及的配置文件的编辑通过vi或者其他手段来实现均可。

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(mosquitto基本使用)