在 linux 上搭建 mqtt 服务器并不难,主要就是用到了 mosquitto
这款消息代理服务软件。其采用发布 / 订阅模式传输机制,轻量、简
单、开放并易于实现,被广泛应用于物联网之中。
Linux 版本: centos7.0_x64
Mosquittob 版本: 1.4.5
1 、安装软件
1 )输入以下指令,挨个安装:
#yum install gcc-c++
#yum install cmake
#yum install openssl-devel
2 )新建个 software 文件夹,下载 mosquitto ,下个不高不低的版
本,并解压:
#mkdir software
#cd software
#wget http://mosquitto.org/files/source/mosquitto-1.4.5.tar.gz
#tar -xzvf mosquitto-1.4.10.tar.gz
注意:这里还不能编译安装 mosquitto
3 )下面的三款扩展性软件,不安装也不影响 mosquitto 的使用:
安装 c-areas (支持异步 DNS 查找的库):
#wget http://c-ares.haxx.se/download/c-ares-1.10.0.tar.gz
#tar xvf c-ares-1.10.0.tar.gz
#cd c-ares-1.10.0
#./configure
#make
#sudo make install
安装 lib-uuid (支持为每个连接客户端生成唯一 uuid ):
#yum install libuuid-devel
安装 libwebsockets (支持需使用 websocket 的应用):
#wget https://github.com/warmcat/libwebsockets/archive/v1.3-
chrome37-firefox30.tar.gz
#tar zxvf v1.3-chrome37-firefox30.tar.gz
#cd libwebsockets-1.3-chrome37-firefox30
#mkdir build
#cd build
#cmake .. -DLIB_SUFFIX=64
#make install
注意:上面的有可能没安装成功,尤其是第三个,不过并无大碍,
只不过没有相应的功能。
4 )修改一下 mosquitto 的配置:
#cd mosquitto-1.4.10
#vim config.mk
将里面的 WITH_SRV:=yes 和 WITH_UUID:=yes 都用 # 号注释掉
5) 接下来编译安装 mosquitto :
#make
#sudo make install
注意:如果在后续使用过程中找不到 libmosquitto.so.1 的话,在
software 下输入以下指令修改一下 libmosquitto.so 的位置:
#sudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1
#sudo ldconfig
2 、启动测试
1 )创建用户:
#sudo groupadd mosquitto
#sudo useradd -g mosquitto mosquitto
注意:这里要是出现什么存在不存在的问题,一定是你 copy 错了。
2 )程序配置:
#mv /etc/mosquitto/mosquitto.conf.example /etc/mosquitto/mosquitto.conf
3)启动程序:
#mosquitto -c /etc/mosquitto/mosquitto.conf –d
默认端口为 1883
4)最后我们再打开一个服务器窗口,在一个(订阅)窗口输入:
$mosquitto_sub -t hello
5) 另一个(发布)窗口输入:
$ mosquitto_pub -t hello -h localhost -m 'hello world'
最终效果:
这样,我们就成功订阅了主题为 hello 的消息了。