mosquitto 安装 centos7
centos7 :
cd ~
yum install openssl-devel
yum install gcc-c++
yum install libuuid-devel
yum install mysql+±devel.x86_64
yum install libc-ares-dev
websocket 支持
yum install cmake
git clone https://github.com/warmcat/libwebsockets.git
cd libwebsockets/
ls
mkdir build
cd build/
cmake …
make install
创建软连接
ln -s /usr/local/lib/libwebsockets.so.15 /usr/lib/libwebsockets.so.15
ldconfig
// 如果安装有报错这个so
ln -s /usr/lib64/libmysqlclient.so.20 /usr/lib/libmysqlclient.so.20
如果 libmysqlclient.so.20 这个文件没有就复制到lib64下,然后执行上面
find / -name libmysqlclient.so.20
ldconfig -p | grep mysql
ldconfig -p | grep libwebsockets.so*
下载
wget http://mosquitto.org/files/source/mosquitto-1.6.7.tar.gz
解压
tar zxfv mosquitto-1.6.7.tar.gz
cd mosquitto-1.6.7
如果需要开启websocket就在源码目录下的config.mk 修改
WITH_WEBSOCKETS:=yes
编译
make
编译过程如果找不到ares.h
sudo yum install c-ares-devel
编译过程中如果找不到libwebsockets.h
sudo yum -y install libwebsockets-devel.x86_64
安装
sudo make install
mosquitto.conf文件加上
listener 9001
protocol websockets
使用过程中找不到libmosquitto.so.1
error while loading shared libraries: libmosquitto.so.1: cannot open shared object file: No such file or directory
【解决方法】——修改libmosquitto.so位置
创建链接
sudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1
更新动态链接库
sudo ldconfig
到这里就安装完成了
异常: Invalid user ‘mosquitto’.
修改配置文件:mosquitto.conf ,增加登录的用户,例如当前登录用户为root
或者添加用户 mosquitto
启动测试start------------------------------------------
启动代理服务
第一个终端中输入如下命令:
//如果没有配置 mosquitto.conf 则执行下面这句启动
mosquitto -v
//如果有配置 mosquitto.conf 则执行下面这句启动
mosquitto -v -c /etc/mosquitto/mosquitto.conf -d
-c 后面跟的是启动mosquitto可以调整的参数,比如是否开启基本认证,端口是什么,SSL单向和双向的认证配置等等。
-d 表示MQTT mosquitto将在后台运行。
-p 代表当前的mosquitto服务实例启动以后,其监听端口号,这个配置的覆盖[-c config file] 指定的配置文件中的端口
-v 代码调试模式(verbose)可以输出更多的信息
订阅主题
在第二个终端中输入如下命令:
mosquitto_sub -v -t sensor
【-t】指定主题,此处为sensor
【-v】打印更多的调试信息
发布内容
在第三个终端中输入如下命令:
mosquitto_pub -t sensor -m 12
【-t】指定主题
【-m】指定消息内容
执行完上面这句即可在第二个终端收到发布的信息
启动测试end--------------------------------------------------------------
重启操作:
先杀再启动
ps -aux | grep mosquitto
kill -s 9 pid
mosquitto -c /etc/mosquitto/mosquitto.conf -d
权限配置
https://www.cnblogs.com/yueli/p/7486043.html
增加权限配置
打开配置文件 aclfile.example 复制为 aclfile 在其中添加如下配置信息。
user mqttread
topic read root/topic/#
user mqttwrite
topic write root/topic/#
修改 Mosquitto.conf 配置选项
打开mosquitto.conf文件,找到acl_file节点。打开配置做如下修改:
修改前:#acl_file
修改后:acl_file /etc/mosquitto/aclfile 根据自己文件实际位置填写
添加对应用户 mqttread 此用户只能读相应top
mosquitto_passwd -c /etc/mosquitto/pwfile mqttread
然后输入密码
添加对应用户 mqttwrite此用户只能写相应top
mosquitto_passwd /etc/mosquitto/pwfile mqttwrite
然后输入密码
一些其它需要注意:
Qos(1);//0 至多一次 1 至少一次 2 只有一次
MQTT的文档中,我们只注意到了设备ID需要在1~23位之间,却并没有注意到字符的限制。最初生成的id是base64的编码。在后面的测试中 ,总是发现推送到某些设备之后推送就断开了。经过检查发现,这是由于一些设备id中存在+符号导致的。
在Topic中,+和#会被当作通配符处理,导致出现 Socket error 的错误
RETAIN(保持)
仅针对PUBLISH消息。不同值,不同含义:
1:表示发送的消息需要一直持久保存(不受服务器重启影响),不但要发送给当前的订阅者,并且以后新来的订阅了此Topic name的订阅者会马上得到推送。
备注:新来乍到的订阅者,只会取出最新的一个RETAIN flag = 1的消息推送。
0:仅仅为当前订阅者推送此消息。
假如服务器收到一个空消息体(zero-length payload)、RETAIN = 1、已存在Topic name的PUBLISH消息,服务器可以删除掉对应的已被持久化的PUBLISH消息。
消息可持久化
是否可根据clientid筛选用户发送信息
topic 数量限制?
修改mosquitto的编译配置文件:config.mk,打开如下配置项(去掉该配置项前面的注释符号#):
WITH_SYS_TREE:=yes
然后重新编译mosquitto即可
(2)修改mosquitto的配置文件mosquitto.conf里的配置项:sys_interval,该项表示系统消息的发布时间间隔(单位:秒),需将该值设置为大于0,否则视为禁用;【在启动mosquito的时候需要显示制定这里修改过的配置文件:mosquitto.conf,例如使用启动命令:./mosquitto -c mosquitto.conf,否则如果不指定任何配置文件,例如使用启动命令:./mosquitto,就会使用默认配置项,即:禁用该功能】
sys_interval 180
websocket
桥接
都需要改了后重新编译
WITH_WEBSOCKETS:=yes
WITH_SRV:=yes
查看当前连接
netstat -an|grep :1883
然后要创建mqtt 用户和密码,密码可以用mosquitto-auth-plug 里面的np 创建,实际上是用PKCS5_PBKDF2_HMAC,算法采用sha256. 然后对结果进行base64编码转成字符串。如果将来要做后台管理界面,就后台自己计算
Mqtt服务的卸载:
查找mqtt服务文件:whereis mosquitto
删除已安装的mqtt文件即可
mqtt服务配置文件 文件夹/etc/mosquitto
mqtt命令文件 /usr/local/sbin/mosquitto 相关mosquitto mosquitto_sub mosquitto_pub mosquitto_passwd
删除以上所有相关的文件
删掉源码包,重新解压
Error: Unable to create websockets listener on port 9001.
ldconfig -p | grep libwebsockets.so*
删掉原来的libwebsockets.so所有指向什么的
然后再重新编译libwebsockets 走安装 libwebsockets的流程
再去重新解压编译mosquitto(要把websocket开关打开)
再次启动一般就可以了
mosquitto 安装 centos7相关推荐
- VMware14安装CentOS7的详细教程
本篇文章主要介绍了VMware安装Centos7超详细过程(图文),具有一定的参考价值,感兴趣的小伙伴们可以参考一下 1.软硬件准备 软件:推荐使用VMwear,我用的是VMwear 12 镜像:Ce ...
- Linux安装CentOS7(图文详解)
Linux安装centos7 准备 软件:VMware workstation 镜像文件:CentOS-7-x86_64-Minimal-1810.iso 一.安装centos7 1.点击创建新的虚拟 ...
- VMware中安装CentOS7网络配置静态IP地址,常用配置和工具安装
VMware中安装CentOS7网络配置静态IP地址,常用配置和工具安装 在阿里云开源镜像地址下载镜像 Index of /centos/7.2.1511/isos/x86_64/ http://mi ...
- U盘安装Centos7.0图解
用U盘安装Centos7.0 工具/原料 centos 7.0 64位系统:CentOS-7.0-1406-x86_64-DVD.iso ultraiso 一个至少8G的U盘 方法/步骤 1.先使用u ...
- 【Linux】在虚拟机上安装CentOS7
在配置好的机子上,可以装个双系统,但是在我自己的本子上,磁盘读写太垃圾了,连压缩卷 都执行不了,分不出空间,装不了CentOS系统,没办法,采用虚拟机的方式,把它转起来. -------------- ...
- Linux入门!Linux无法联网解决办法!CentOS7、VMPlayer、VMWareWorkstation16资源!VMWareWorkstation16序列号!VMware安装Centos7!
Linux入门!CentOS7.VMPlayer.VMWareWorkstation16资源!VMWareWorkstation16序列号!Linux无法联网解决办法!VMware安装Centos7! ...
- Vmware 安装CentOS7时连不上网问题的解决
Vmware 安装CentOS7时连不上网问题的解决 参考文章: (1)Vmware 安装CentOS7时连不上网问题的解决 (2)https://www.cnblogs.com/yaomajor/p ...
- VMware虚拟机安装Centos7
首先这里我们需要用到本次安装的VMware软件,这里采用的是VMware15.0.0 以及Centos7.2(1511) VMware注册码:链接:https://pan.baidu.com/s/1j ...
- docker 安装centos7并SSH远程连接
1.安装centos7 镜像 1.搜索并拉取centos镜像(默认最新镜像)docker search centosdocker pull centos2.建立本机对应docker-centos76 ...
最新文章
- 《LeetCode力扣练习》第39题 组合总和 Java
- python代码覆盖率测试_利用coverage工具进行Python代码覆盖率测试
- kafka和storm集成_Storm和Kafka集成的重要生产错误和修复
- 问题:org.apache.dubbo.remoting.TimeoutException
- 大数据学习系列----大数据项目的思考
- word把选择答案弄到题目里_一个极限案例弄明白为何“看答案都明白,做题目就是想不起来”...
- C/C++使用strcpy报错解决方案
- 概要设计 英文_JavaScript 中的位运算和权限设计
- python爬虫,短短25行代码批量下载豆瓣妹子图片
- oppo X907刷机包 COLOROS 1.0 正式版公布 安卓4.2.2
- 搭建Maven私服Nexus
- 首旅如家蝉联世界酒店集团10强,中高端酒店开业超1000家
- YOLOv7来临:论文解读附代码解析
- 从方法到实践,银行如何搭建用户体验管理体系?
- Eclipse插件安装最简单方式--以Eclipse中文语言包汉化为例(附汉化包)
- pip版本更新的问题
- python计算歌手得分
- 17、python数据列之间的简单计算(加减乘除)
- 【特征检测】LIOP特征描述算法
- php 表单 与数据库查询
热门文章
- 用大数据分析预测五组大乐透的开奖号码
- HDFS(一)HDFS基本介绍
- 全数字转全模拟+数字的完美IC-CV2880留个记录
- sentinel 整合dubbo限流
- Java jar war ear 包区别
- 红客是什么呢?零基础如何成为红客!
- 论:MongoDB的好坏丑
- [原创]大部调整的IT遐想
- 读书笔记22:Optical Flow Guided Feature: A Fast and Robust Motion Representation for Video Action Recogni
- 喜讯!华秋电子荣获千峰奖“2022年度产业互联网百强”,持续为电子产业增效降本!