一.MQTT协议是什么
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。该协议支持所有平台,几乎可以把所有联网物品和外部连接起来,被用来当做传感器和制动器(比如通过Twitter让房屋联网)的通信协议。
二.mosquitto是什么
mosquitto是一款实现了消息推送协议 MQTT v3.1 的开源消息代理软件,提供轻量级的,支持可发布/可订阅的的消息推送模式,使设备对设备之间的短消息通信变得简单。
三.资源地址集锦
项目 | 官方地址 |
---|---|
官方网站 | 点击进入 |
github 项目 | 点击进入 |
各版本下载地址 | 点击进入 |
四.Centos7下安装mosquitto
1.下载1.5版:
wget http://mosquitto.org/files/source/mosquitto-1.5.tar.gz
2.解压
tar zxfv mosquitto-1.5.tar.gz
3.编译
make
4.编译出错
提示出现缺少“openssl”或#<include>
报错,这是因为缺少依赖库。安装下面两个依赖:
sudo yum install openssl
sudo yum install openssl-devel
安装完后,再次make
编译,报错g++: Command not found
,缺少了gcc依赖,安装:
yum -y update gcc
yum -y install gcc+ gcc-c++
安装完后,再次编译,不在报错。
5.安装
sudo make install
五.测试使用
打开三个终端窗口A、B、C。
1.在A窗口启动mosquitto,并打印日志(-v
参数),执行命令:
mosquitto -v
执行后,A窗口的日志,会提示版本信息:
2.在B窗口,创建消费者,指定Topic为test(-t
参数):
mosquitto_sub -v -t test
出现错误:“mosquitto_sub: 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
再次创建消费者,不在报错,成功执行,A窗口的日志,会提示有客户端订阅消息:
3.在C窗口,创建生产者,指定Topic(-t
),并发送消息(-m
)
mosquitto_pub -t test -m "hello mosquitto"
执行后,B窗口消费者的日志,会提示有客户端订阅消息:
窗口A中,会有“心跳”(间隔一段时间发送和接收信息),提示如下:
到此,mosquitto在Centos7上的安装完成,并能够正常使用其收发信息。