一mqtt桥接模式部署
环境: centos6.6
yum install -y gcc ( 安装GCC编译器 )
yum install -y gcc-c++ ( 安装G++编译器 )
yum install -y pcre pcre-devel ( 安装PCRE库 )
yum install -y zlib zlib-devel ( 安装zlib库 )
yum install -y openssl openssl-devel ( 安装OpenSSl开发库 )
----CentOS #include <uuid/uuid.h> 找不到文件解决方法
sudo yum install uuid-devel
sudo yum install libuuid-devel
下载包 1.4.4
解压缩安装
make
make install
编译过程找不到 ares.h
修改 config.mk中的WITH_SRV:=yes ,改为WITH_SRV:=no
使用过程中找不到 libmosquitto.so.1
# 创建链接
ln -s /usr/local/lib/libmosquitto.so.1/usr/lib/libmosquitto.so.1
(或者用sudo ln -s /usr/local/lib/libmosquitto.so.1/usr/lib/libmosquitto.so.1)
# 更新动态链接库
ldconfig
使用过程中 Invalid user 'mosquitto'.
两种解决办法:
(1)修改配置文件 :mosquitto.conf ,增加登录的用户,例如当前登录用户为 root
(2)执行命令增加当前用户:
adduser mosquitto
简单测试
一个完整的MQTT 示例包括一个代理器,一个发布者和一个订阅者。测试分为以下几个步骤:
【1】启动服务 mosquitto。
【2】订阅者通过 mosquitto_sub订阅指定主题的消息。
【3】发布者通过 mosquitto_pub发布指定主题的消息。
【4】代理服务器把该主题的消息推送到订阅者。
启动代理服务
mosquitto -v
【-v】打印更多的调试信息
订阅主题
mosquitto_sub -v -t sensor
【-t】指定主题,此处为 sensor
【-v】打印更多的调试信息
发布内容
mosquitto_pub -t sensor -m 12
【-t】指定主题
【-m】指定消息内容
二 持久化配置
在/etc/mosquitto下将 mosquitto.conf.example拷贝一份出来修改为mosquitto.conf
修改 mosquitto.conf文件
persistence true
persistence_file mosquitto.db
persistence_location /var/lib/mosquitto/
在/var/lib下建一个文件夹 mosquitto
三 桥接模式配置
修改
/etc/mosquitto/mosquitto.conf 文件
connection ta
address 10.88.88.185:1883
topic # both 0
其中 address配置的地址是需要连接到的 mqtt服务地址, 如果有多个 mqtt服务则写多个connection 如 :
connection tb (不能重复)
address 10.88.88.186:1883
topic # both 0