在 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 的消息了。