最近公司需要mqtt SO 就研究一下 (一)

岳小威子
2021-07-06 / 394 个字 / 0 评论 / 75 阅读 / 加载耗时:16ms / 正在检测是否收录...
温馨提示:
本文最后更新于2021年07月07日,已超过1263天没有更新,若内容或图片失效,请留言反馈。

首先交代一下,用到的安装包

  1. mosquitto-2.0.11 # mqtt主程序安装包。---后面发现不用装了,我就不管了
  2. libwebsockets-4.2.0 # websocket安装包。如果你要用mosquitto-cluster集群的话,就不用装这个了,不支持!!!
  3. cJSON # 我也不知道是啥 mqtt需要用到的安装。---后面发现不用装了,我就不管了
  4. mosquitto-cluster # mqtt 集群安装包 集成的mosquitto是1.5.0版本的QAQ
  5. mosquitto-auth-plug # mqtt权限安装包,可以用来连接数据库mysql做用户认证

下面都是在CENTOS 7 下运行安装


上来先把依赖装一下(wo xiang zhi dao shem me shi T M D yi lai)

yum -y install gcc gcc-c++ openssl-devel  c-ares-devel libuuid-devel wget cmake
# 不止这些,下面还有

先为mosquitto增加websocket支持,安装websocket库文件

cd libwebsockets-4.2.0
mkdir bulid
cd bulid
cmake ..
make && make install

安装mosquitto-cluster集群 (装这个其实和装mosquitto一毛一样)

cd mosquitto-cluster 
vi config.mk
# 这里的vi config.mk是为了进配置文件修改 WITH_BRIDGE 和 WITH_CLUSTER;但我发现没啥要改的
## 如果要用websocket,将WITH_WEBSOCKETS:=no 改为yes 这一步狠重要(我的需要,后加的,也有出错,在下面会写)
make && make install
cp lib/libmosquitto.so.1 /usr/local/lib
sudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1
ldconfig

这里就报错了,如下
mosquitto-cluster报错
解决方案如下:

yum -y install docbook-style-xsl
yum -y install libxslt
# 配置并修改docbook.xsl
find / -name docbook.xsl

xsltproc:命令未找到
将白色部分替换掉mosquitto-cluster/man/manpage.xsl文件下的内容
修改manpage.xsl
就好了。。。。应该是这样。。。。

因为我加了websocket,所以有了新的问题。
websocket出错
这个解决方案是我自己瞎想的,但也能解决问题。就是给出错的函数声明一下:

const S_IFDIR
const S_IFREG

这两也能解决问题。

# 重新编译安装一下
make && make install

就好了,然后mosquitto.conf配置,我就不写了。baidu一下你知道的。(有需要留言,我再写,我感觉baidu一下好多的)

下面安装mosquitto-auth-plug

cd mosquitto-auth-plug
cp config.mk.in config.mk
#修改如下图

mosquitto-auth-plug config.mk 修改

文章到这里就结束了

您在本文章已经停留了大概
喜欢的话就点个赞吧!或着请我喝个冰可乐,我就太感谢你了!


0
打赏
拜谢打赏(☆ω☆)

感谢老板,老板大气。。

评论 (0)

取消