IM mqtt之mosquitto
一、介绍
1.1 mqtt
MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。
1.2 mosquitto
一款实现了消息推送协议 MQTT v3.1 的开源消息代理软件,提供轻量级的,支持可发布/可订阅的的消息推送模式,使设备对设备之间的短消息通信变得简单。
githup地址:https://github.com/eclipse/mosquitto
二、安装测试
2.1 安装
2.1.1 安装环境
ubuntu20.04
2.1.2 安装命令
sudo apt-get install mosquitto
sudo apt-get install mosquitto-clients
2.2 测试
2.2.1 启动服务器
mosquitto -p 1995 # -p 后为端口号,随意填写
2.2.2 启动订阅者
mosquitto_sub -t "test" -h 127.0.0.1 -p 1995 #-h为服务器IP,-p为服务器端口
2.2.3 启动发布者
mosquitto_pub -m "你好啊" -t "test" -h 127.0.0.1 -p 1995 #-h为服务器IP,-p为服务器端 -m 为消息内容
三、源码安装
3.1 下载编译
- 下载: https://github.com/mingyang0921/mosquitto
- 编译: make
3.2 常见问题
3.2.1 缺少json库
3.2.1.1 报错内容
../../config.h:86:12: fatal error: cjson/cJSON.h: No such file or directory
3.2.1.1 解决办法
- 下载: https://github.com/DaveGamble/cJSON
- 编译: make && make install
3.2.2 缺少相关命令
3.2.2.1 报错内容
- 缺少xsltproc
make[1]: xsltproc: Command not found
- 缺少docbook-xsl docbook-xml
I/O error : Attempt to load network entity http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl
3.2.2.2 解决办法
- 安装命令:
sudo apt-get install xsltproc docbook-xsl docbook-xml