MQTT Build安装

MQTT Build安装

基于CentOS7.1 Date: 2017-07-28 11:15:07 星期五 Author: Kent


[TOC]


1.安装编译工具

yum install gcc-c++
yum install cmake

2.安装依赖库

  • openssl-devel: TLS安全链接支持所需库
  • c-areas-devel: 一个支持异步DNS查找的库
  • libuuid-devel: 为每个连接的客户端生成唯一的uuid
  • libwebsockets: 对websocket进行支持

需增加扩展的yum库,系统默认不支持此工具yum安装

2.1 安装aliyun的yum扩展库

#将扩展库下载到/etc/yum.repos.d目录
wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-7.repo
#重建yumdb缓存
yum clean dbcache
yum makecache

2.2 依赖库安装

yum install openssl-devel c-ares-devel libuuid-devel libwebsockets-devel

3. 编译安装Mosquitto

3.1 下载并解压

#package-size only 319kB
wget http://mosquitto.org/files/source/mosquitto-1.4.14.tar.gz
tar -zxvf mosquitto-1.4.14.tar.gz #解压

3.2 修改编译配置文件config.mk

  • WITH_WEBSOCKETS配置修改为yes。以支持websocket
  • prefix=/usr/local安装路径修改为/etc/mosquitto

修改前默认安装路径如下

  • /usr/local/sbin: mosuqitto指令安装
  • /etc/mosquitto: 配置文件
  • /usr/local/bin: moquitto_pub,mosquitto_sub等工具

3.3 执行安装

make && make install

3.4 配置环境变量

  • 将如下配置加入/etc/profile。以支持在任意目录执行mosquitto命令
MQTT_HOME=/etc/mosquitto
PATH=.:$MQTT_HOME/bin:$MQTT_HOME/sbin:$PATH
export MQTT_HOME PATH
  • 执行source /etc/profile以生效配置

4. 配置服务及防火墙

4.1 配置Mosquitto

  • 创建/etc/mosquitto/mosquitto.conf, 可参考/etc/mosquitto/mosquitto.conf.example中的说明
  • 创建日志文件目录 mkdir -p /var/logs/mosquitto/
#MQTT配置文件
pid_file /var/run/mosquitto.pid

user root

log_dest file /var/logs/mosquitto/mosquitto.log #需创建日志目录
log_type all
log_timestamp true
connection_messages true

#mqtt监听端口
listener 1883
protocol mqtt

#websocket端口
listener 9001
protocol websockets

4.2 配置防火墙

firewall-cmd --add-port=1883/tcp --permanent
firewall-cmd --add-port=9001/tcp --permanent
firewall-cmd --reload

5. 测试运行

  • server端
# 启动MQTT Server
mosquitto -c /etc/mosquitto/mosquitto.conf -d
# 检查启动情况,-d表示后台运行,有时候出错了服务并没有起来,但不会有异常提示
ps -ef | grep mosquitto
# 监听msg topic,端口如果是1883 -p可以不写
mosquitto_sub -t msg -p 1883
  • client端
#端口如果是1883,-p可以不写
mosquitto_pub -t msg -m "Hello World" -h 192.168.1.211 -p 1883 

6. 异常处理

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

#mosquitto依赖库lib文件夹下的两个文件需要链接到/usr/lib64中
#如果不是64位系统连接到/usr/lib
ln -s /etc/mosquitto/lib/libmosquitto.so.1 /usr/lib64/libmosquitto.so.1
ln -s /etc/mosquitto/lib/libmosquittopp.so.1 /usr/lib64/libmosquittopp.so.1

7.参考文档

转载于:https://my.oschina.net/kentchensq/blog/1627126

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值