Mosquitto

Mosquitto是一个实现了MQTT3.1协议的代理服务器,由MQTT协议创始人之一的Andy Stanford-Clark开发,它为我们提供了非常棒的轻量级数据交换的解决方案。本文的主旨在于记录Mosquitto服务的安装和使用,以备日后查阅。

获取&安装 

在Linux系统上安装Mosquitto,本人建议大家使用源码安装模式,最新的源码可从 http://mosquitto.org/files/source/ 地址中获取。解压之后,我们可以在源码目录里面找到主要的配置文件config.mk,其中包含了所有Mosquitto的安装选项,详细的参数说明如下: 

# 是否支持tcpd/libwrap功能.
WITH_WRAP:=yes
# 是否开启SSL/TLS支持
WITH_TLS:=yes
# 是否开启TLS/PSK支持
WITH_TLS_PSK:=yes
# Comment out to disable client client threading support.
WITH_THREADING:=yes
# 是否使用严格的协议版本(老版本兼容会有点问题)
WITH_STRICT_PROTOCOL:=yes
# 是否开启桥接模式
WITH_BRIDGE:=yes
# 是否开启持久化功能
WITH_PERSISTENCE:=yes
# 是否监控运行状态
WITH_MEMORY_TRACKING:=yes

由于是测试环境,所以关闭SSL/TLS

# 是否开启SSL/TLS支持
#WITH_TLS:=yes
# 是否开启TLS/PSK支持
#WITH_TLS_PSK:=yes

在安装过程中报如下信息

handle_connect.c:33:25: fatal error: uuid/uuid.h: No such file or directory

需要执行如下命令

yum install libuuid-devel

执行安装命令

make
make install

安装完成后

cd /etc/mosquitto
cp mosquitto.conf.example mosquitto.conf

执行命令

mosquitto -c /etc/mosquitto/mosquitto.conf

如果报如下异常

1546572122: Error: Invalid user 'mosquitto'.

新增用户

adduser mosquitto

开启客户端进行订阅

mosquitto_sub -v -t test

执行客户端时报错

mosquitto_sub: error while loading shared libraries: libmosquitto.so.1: cannot open shared object file: No such file or directory

执行

cp libmosquitto.so.1 /usr/local/lib
ln
-s /usr/local/lib/libmosquitto.so.1 /usr/local/lib/libmosquitto.so.1
ldconfig

开启客户端执行发布

mosquitto_pub -t topic01 -m 1111111

订阅客户端收到如下信息

topic01 1111111

验证完成

posted on 2019-01-04 14:16  杨家小苑  阅读(1246)  评论(0编辑  收藏  举报