mosquitto简介
前面我们讲到,MQTT协议提供了一种消息负载小的publish/subscribe模型,使得它很适合物联网(Internet of Things)通信,比如低功耗传感器或手机、嵌入式设备。
而Mosquitto是一个开源 的使用MQTT协议的消息代理软件,它是非常轻量级的代理,可运行于从单板计算机到全功能服务器的所有设备上。除此之外,Mosquitto还提供了一个用于实现MQTT客户端的C库和mosquitto_pub和mosquitto_sub命令行工具。
Liunx下安装Mosquitto
- 下载mosquitto库
wget https://mosquitto.org/files/source/mosquitto-2.0.11.tar.gz
- 解压
tar -xzvf mosquitto-2.0.11.tar.gz
- 进入目录安装
cd mosquitto-2.0.11/
make
make install
- 配置mosquitto.conf文件,这一步主要是将conf文件里原来被注释掉的有用信息恢复
- 将 mosquitto.conf 复制到ect下面
cp mosquitto.conf /etc/mosquitto
- 进入修改:
cd /etc/mosquitto/
vim mosquitto.conf
- 找到Default Listeners下的
服务的端口号 #port 1883 改为 port 1883
最大连接数,-1表示不限制
#max_connections -1 改为 max_connections -1
命令行实现通信
- 启动mosquitto服务器
mosquitto -v
启动成功:
3. 订阅:mosquitto_sub 订阅命令
mosquitto_sub命令参数说明:
-t : 指定topic(要发布的主题)
-v :打印消息
-h :要连接的域名 默认为localhost
-i :指定clientId
-I :指定clientId前缀
-c :设定‘clean session’为无效状态,这样一直保持订阅状态,即便是已经失去连接,如果再次连接仍旧能够接收的断开期间发送的消息
-q :QoS消息的类型 默认QoS为0
mosquitto_sub -v -t weizhiyan
- 发布: mosquitto_pub 发布命令
mosquitto_pub命令参数说明:
-t 指定发布的主题
-h 主机地址;localhost 发布到本地,如果远程主机直接写ip地址(不用写端口号)
-m 发布的信息
-n 发送一个空(null)消息
-f 将指定文件的内容作为发送消息的内容
-i 指定要给哪个clientId的用户发送消息
-I 指定给哪个clientId前缀的用户发送消息
-n 发送一个空(null)消息
-p 连接端口号
-q 指定QoS的值(0,1,2)
-u 指定broker访问用户
-P 指定broker访问密码
mosquitto_pub -t "weizhiyan" -m "hello world!"
结果: