Mosquitto 使用C++ 语言编写的MQTT broker 端,详情可参考官网 http://mosquitto.org/ ,本文主要讲述centos 6.5 环境下如何编译 mosquitto
1. 下载源码
wget http://mosquitto.org/files/source/mosquitto-1.4.11.tar.gz
2.安装依赖库
yum install libssl-dev
yum install libc-ares-dev
yum install uuid-dev
yum install openssl-devel
yum install c-ares-devel
yum install libuuid-devel
yum install libc-ares-dev
yum install uuid-dev
yum install openssl-devel
yum install c-ares-devel
yum install libuuid-devel
3.为mosquitto增加websocket支持
yum install cmake
git clone https://github.com/warmcat/libwebsockets.git
cd libwebsockets
mkdir build
cd build
cmake ..
make install
后续需要使用libwebsockets的库文件,如果找不到库,执行下面的命令为库做一下符号连接(分64位和32位)
ln -s /usr/local/lib/libwebsockets.so.10 /usr/lib64/libwebsockets.so.10
ln -s /usr/local/lib/libwebsockets.so.10 /usr/lib64/libwebsockets.so.10
4. 配置&编译mosquitto
tar -zxvf mosquitto-1.4.11.tar.gz
cd mosquitto-1.4.11
修改config.mk 支持 websocket, WITH_WEBSOCKETS 设置成yes
# Build with websockets support on the broker.
WITH_WEBSOCKETS:=yes
WITH_WEBSOCKETS:=yes
5.运行验证mosquitto
我们看下面这幅图,MQTT的工作原理, 要达到验证的目的,首先 mqtt broker 要正常运行,其次要有一个mqtt 订阅消息,一个mqtt 客户端发布消息
5.1运行mosquitto(mqtt broker)
编辑 mosquitto.conf,增加root
user root
增加port 1883 , listener 9001, protocol websockets, 三项
cp
mosquitto.conf ./src
cd ./src
./mosquitto -c ./mosquitto.conf
从图中可以看出mosquitto 已经正常运行
5.2 运行mqtt client subscribe
cd client
看到缺少链接,增加链接
ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib64/libmosquitto.so.1
我们让mosquitto_sub 订阅主题为test 的消息,已经正常运行
5.3运行mqtt client publish
同时可以看到订阅端将会收到“jack"
从mqtt client <--> mqtt borker <-----> mqtt client 的消息已经打通,
测试完成,我们的目的已经达到