MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,通过TCP协议进行数据传输。用在实时通讯方面非常的方便。mosquitto是一款实现了MQTT协议的一个中间件(服务器软件)。MQTT的通讯流程是:订阅者向服务器订阅主题,发布者向服务器发布信息,当信息到达服务器时,服务器会将信息转发给订阅了该主题的订阅者。
下面我们来安装mosquitto,环境是Centos 7。首先我们进入http://mosquitto.org/download/,找到Cenots的源
在/etc/yum.repos.d下创建MQTT.repo文件,然后将下面的内容粘贴进去
[home_oojah_mqtt] name=mqtt (CentOS_CentOS-7) type=rpm-md baseurl=http://download.opensuse.org/repositories/home:/oojah:/mqtt/CentOS_CentOS-7/ gpgcheck=1 gpgkey=http://download.opensuse.org/repositories/home:/oojah:/mqtt/CentOS_CentOS-7/repodata/repomd.xml.key enabled=1
然后就可以用yum install mosquitto mosquitto-client -y安装mosquitto服务端和客户端了
安装后mosquitto的主目录是在/etc/mosquitto,其中配置文件是mosquitto.conf。
我们做几个修改:
1、设置开启日志记录
首先找到#log_dest stderr,然后在其下方插入log_dest file /var/log/mosquitto.log,这个表示记录日志并保存到/var/log/mosquitto.log文件。
2、找到#log_type information,然后在下方插入log_type all,这句表示记录所有日志类型
3、#allow_anonymous true,表示是否允许匿名连接,默认是允许的,如果我们要限制只能通过用户名密码连接的话,需要改成allow_anonymous false
4、#password_file,这里指定用户密码配置文件例如password_file /etc/mosquitto/pwfile
5、创建用户,使用mosquitto_passwd -c /etc/mosquitto/pwfile test,然后回车,会提示输入密码,连续输入两次,然后用户信息创建成功就会保存到/etc/mosquitto/pwfile里面
注意:第一次创建用户的时候要加-c参数,表示创建账号文件,第二次或者账号文件已经存在的情况,就不要加-c参数了,否则会覆盖里面所有的账号信息
常用命令
1、启动mosquitto
mosquitto -c 配置文件路径 -d -v
-c参数指定配置文件路径,-d参数表示在后台运行,-v参数表示记录全部日志信息(即使配置文件里面配置了不记录日志或者只配置了记录某种日志类型)
2、订阅主题
mosquitto_sub -t 主题名称 -u 用户名 -P 密码
-P参数的P是大写
3、发布主题信息
mosquitto_pub -t 主题名称 -m "要发布的信息" -u 用户名 -P 密码
ok
mjj通道