背景
MQTT协议是基于订阅模型的一种实现,主要适用于网络质量差的环境下,例如手机APP与服务端之前,还有就是现在非常火热的物联网低功耗设备场景下。它的本质是一个borker,这个borker的实现有很多种,例如mosquitto
,ActiveMQ
及apollo
等,今天先不讲这些个borker之间的区别,主要讲一下linux环境下如何进行安装部署。
下载安装包
可以在Windows
与Linux
下进行安装,在Windows
下安装相对麻烦一些,需要安装cygwin
,这里面携带了很多库文件等,访问官网下载源码包进行编译安装。
安装步骤
安装
- 目前最新的版本是1.4.14版本,将下载的
mosquitto-1.4.14.tar.gz
包解压; - 进入
mosquitto-1.4.14
目录下; - 执行
make
命令; - 执行
make install
命令,直到安装完成;
启动
- 执行命令
mosquitto -v
,-v是指打印出更多的调试信息
订阅
- 执行命令
mosquitto_sub -t topic
,topic是指你期望的主题,主题的详细设备可参见MQTT协议文档,非常灵活
发布
- 执行命令
mosquitto_pub -t topic -m message
,topic是指你期望发往的主题,message是指消息内容,如果消息内容是JSON格式带有双引号,则需要将message用单引号括起来
可能遇到的问题
- 编译过程找不到ares.h头文件,网上解决办法其一为修改config.mk中的WITH_SRV:=yes,改为WITH_SRV:=no,其二为安装ares库,下载地址,下载完后,执行编译三步骤(configure,make,make install),亲测第二种方式有效
- 编译过程找不到uuid/uuid.h,执行命令
yum install libuuid-devel
,如果未安装YUM源又不能上网的话,就需要手动去RPM网上下载了 - 使用过程中找不到libmosquitto.so.1,执行命令
ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1
后,并且更新动态链接库ldconfig
后话
这只是一个简单的安装过程,这中间还有一些修改端口,设备用户名与密码等,另外也可以使用mosquitto_sub
与mosquitto_pub
命令对ActiveMQ
的borker进行测试。