mosquitto的安装与使用
一款实现了消息推送协议 MQTT v3.1 的开源消息代理软件,提供轻量级的,支持可发布/可订阅的的消息推送模式,使设备对设备之间的短消息通信变得简单,比如现在应用广泛的低功耗传感器,手机、嵌入式计算机、微型控制器等移动设备。一个典型的应用案例就是 Andy Stanford-ClarkMosquitto(MQTT协议创始人之一)在家中实现的远程监控和自动化。并在 OggCamp 的演讲上,对MQTT协议进行详细阐述。
一、准备材料
安装包:openssl、JSON-C、mosquitto
安装环境:ubuntu20.04
二、MQTT协议
MQTT每个版本之间存在一定的差异,需要了解相关信息的请参考相关协议说明
MQTT中文网:http://mqtt.p2hp.com/
三、下载源码
- openssl下载
openssl官网:https://www.openssl.org/
openssl源码下载
- mosquitto下载
mosquitto官网:http://mosquitto.org/
mosquitto源码下载
mosquitto的所以源码版本都在source路径下
- json-c下载
通过git获取json-c源码
git clone https://github.com/DaveGamble/cJSON
四、mosquitto安装
安装方式有两种,分为指令安装和源码安装,可以根据自己的需要选择相应的安装方式
- 源码安装
了解源码的安装主要是方便后面学习移植,先将openssl和mosquitto拷贝到linux环境中进行解压,先安装openssl再安装mosquitto。
安装openssl
tar vxf openssl-1.1.1l.tar.gz
cd openssl-1.1.1l
ls
./config
make
make test
sudo make install
安装完成后会在/usr/local路径下生成ssl文件,并在include和share文件中生产相关文件。
安装json-c
git clone https://github.com/DaveGamble/cJSON
cd cJSON
make all
sudo make install
安装mosquitto
tar vxf mosquitto-2.0.11.tar.gz
cd mosquitto-2.0.11
ls
直接make即可
make
sudo make install
- 指令安装
sudo apt-get install mosquitto
sudo apt-get install mosquitto-clients
五、mosquitto使用
测试mosquitto至少需要打开3个命令窗口。
- 启动服务端(代理服务器)
mosquitto -c /etc/mosquitto/mosquitto.conf.example
2. 启动订阅端(订阅者)
mosquitto_sub -t temp
订阅成功后代理服务器将会输出相应的信息
3. 发布消息(发布者)
mosquitto_pub -t temp -m hello_world
发布完成后订阅者将会收到相信的信息
问题处理
- mosquitto_sub: error while loading shared libraries: libmosquitto.so.1: cannot open shared object file: No such file or directory
解决办法:
sudo ldconfig
- Error: Address already in use
解决办法:
sudo lsof -i:1端口号
kill -9 进程号
参考文献
mosquitto百度百科:https://baike.baidu.com/item/mosquitto/3172080?fr=aladdin
openssl百度百科:https://baike.baidu.com/item/openssl/5454803?fr=aladdin
Linux下cJSON安装及使用:https://zhuanlan.zhihu.com/p/55095477
MQTT服务器搭建--Mosquitto:https://hao123.blog.csdn.net/article/details/112789257
MQTT--mosquitto使用详解:https://blog.csdn.net/qq_28877125/article/details/78330809
本文来自博客园,作者:浇筑菜鸟,转载请注明原文链接:https://www.cnblogs.com/jzcn/p/15205849.html
如本博客的内容侵犯了你的权益,请与以下地址联系,本人获知后,马上删除。同时本人深表歉意,并致以崇高的谢意! cn_jiaozhu@qq.com