Mosquitto是一个实现了MQTT3.1协议的代理服务器,由MQTT协议创始人之一的Andy Stanford-Clark开发,它为我们提供了非常棒的轻量级数据交换的解决方案。 下载地址是: http://mosquitto.org/download/
这里我们使用源码安装方式,下载版本是:mosquitto-1.3.5.tar.gz
安装脚本如下:
yum -y install gcc-c++ cmake openssl-devel
tar zxfv mosquitto-1.3.5.tar.gz
cd mosquitto-1.3.5
make WITH_SRV=no && make install prefix=/data/server/mqtt
接下来我们需要稍微配置一下。
第一步:添加启动用户
groupadd mosquitto
useradd -g mosquitto mosquitto -s /sbin/nologin
第二步:复制配置文件
cd /etc/mosquitto
cp mosquitto.conf.example mosquitto.conf
第三步: 启动代理服务
cd /data/server/mqtt/sbin
./mosquitto -c /etc/mosquitto/mosquitto.conf -d -v
如果没有开启 1883 端口的话, 提前开启后在启动 mosquitto!
当然我们可以查看一下进程:ps -aux | grep mosquitto
接下来我们需要测试一下订阅/发布的功能,首先我们要做一个软连接解决一个库文件找不到的问题:
ln -s /data/server/mqtt/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1
ldconfig
然后,新开一个订阅者终端窗口:
cd /data/server/mqtt/bin
./mosquitto_sub -v -t richie
-t 指定主题,此处为richie
然后,我们再新开一个发布者终端窗口:
cd /data/server/mqtt/bin
./mosquitto_pub -t richie -m hello
-t 指定主题, -m 指定消息内容
备注:三个终端窗口,一个用来开启服务,一个执行mosquitto_sub来订阅消息,与服务器保持长连接,随时接收来自服务器推送的消息,最后一个终端则用来发布消息。当发布者推送消息之后,订阅者获得以下内容richie hello
因为我们启动 mosquitto 的时候指定了显示日志,所以我们能够看到订阅者和发布者的信息
因为我们使用的同一台主机,因此订阅者和发布者是一样的。