栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

基于CentOS7搭建MQTT服务器踩坑实战

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

基于CentOS7搭建MQTT服务器踩坑实战

  • 准备依赖环境

    yum install gcc-c++

    yum install cmake

    yum install openssl-devel

  • 下载mosquitto及相关组件包

    1.下载mosquitto:

    wget http://mosquitto.org/files/source/mosquitto-1.4.4.tar.gz

    如果下载失败(由于本人是Linux小白,不知道具体原因),可以在windows下载完成后,拖到Linux服务器上。然后解压源码到自己的文件夹

    tar -xzvf mosquitto-1.4.4.tar.gz mydir

    1. 安装c-areas(支持异步DNS查找的库):

    wget http://c-ares.haxx.se/download/c-ares-1.10.0.tar.gz

    tar xvf c-ares-1.10.0.tar.gz

    cd c-ares-1.10.0

    ./configure

    make

    sudo make install

    1. 安装lib-uuid(支持为每个连接客户端生成唯一uuid):

    yum install libuuid-devel

    1. 安装libwebsockets(支持需使用websocket的应用):

    Wget https://github.com/warmcat/libwebsockets/archive/v1.3-chrome37

    -firefox30.tar.gz

    tar zxvf v1.3-chrome37-firefox30.tar.gz

    cd libwebsockets-1.3-chrome37-firefox30

    mkdir build

    cd build

    cmake .. -DLIB_SUFFIX=64

    make install

    以上三个扩展包安装完成后就可以进行下一步了。(CSDN大佬说有可能失败但是不影响后面的使用只是缺少相应的功能,但很庆幸我都成功了。如果失败可以在管理员模式下操作在指令前面加上sudo尝试一下)

  • 编译&安装mosquitto

    在编译之前可以先配置一下mosquitto的功能,在源码的根目录下config.mk文件内包含了需要的配置信息,可以根据自己的需求开启相应的功能(有些功能需要资源包,否则会编译出错找不到相应的.h文件),我开起了以下功能,也就是我们之前安装的3个扩展包:

    WITH_SRV:=yes

    WITH_UUID:=yes

    WITH_WEBSOCKETS:=yes

    接下来就是编译和安装了,在这之前先祈祷一下,千万别出错,出错了的话又得折腾半天,尤其是对于我这种小白来说

    make

    sudo make install

  • 配置&启动

    我们的代码是安装在 ept/mosquitto/目录下的,mosquitto的配置文件是mosquitto.conf,在目录下并没有这么一个文件,而是有一个mosquitto.conf.example,我们来给他改一下名字:

    mv /etc/mosquitto/mosquitto.conf.example /etc/mosquitto/mosquitto.conf

    到这里我们就可以运行mosquitto了,但是只能在本机通讯,而且端口号等配置都是默认值,大佬的教程基本上都是到这里就结束。网上有些大佬是通过改mosquitto.conf来配置的,但是不知道什么原因,我无论怎么更改这个文件的里的配置,最后运行的总是默认配置。后来找了很多资料,才发现可以在/etc/mosquitto/目录下创建一个conf.d文件夹 将mosquitto.conf拷贝一下

    cp -r mosquitto.conf  /etc/mosquitto/conf.d

    在原来的mosquitto.conf文件最后面加上include_dir /etc/mosquitto/conf.d

    通过更改conf.d下的conf文件就可以更改mosquitto的配置了。这里我只是重新映射了一下端口号 将#port 1883 改为port xxxx。

    具体的配置参数详情可以参考《mosquitto配置文件详解》。

    启动命令:

    mosquitto -c /etc/mosquitto/mosquitto.conf -d

    为了启动方便也可以写一个shell脚本放在/etc/profile.d/目录下,脚本会在每次登录的时候自动启动mosquitto。脚本内容:

    #!/bin/sh

    cd /etc/mosquitto/

    mosquitto -c mosquitto.conf

  • 通讯测试
    1. 本机测试

    在服务器上重新打开两个命令窗口,一个为订阅者,一个为发布者

    在订阅者窗口输入 mosquitto_sub -t test

    在发布者窗口输入 mosquitto_pub -t test -m“发布消息”

    如果在订阅者窗口会收到消息就证明服务器已经运行。

    1. 局域网测试

    下载MQTTX助手,输入相关参数

     

    名称随意定义,client ID 不用更改,服务器地址及端口,写上自己服务器在局域网内的IP 及映射的端口号,其他默认即可。点击连接按钮就可以自己发布和订阅消息了。如果连接失败,先看一下端口号是否在路由器里映射,并且确认服务器的防火墙对该端号是打开的。

  • 参考来源

    1.《Linux上MQTT环境搭建》

    2.《Linux搭建MQTT服务器(mosquitto)并使用》

    3.《mosquitto 结束&启动》

    4.《mosquitto配置文件详解》

    感谢以上大佬的精彩分享

  • 转载请注明:文章转载自 www.mshxw.com
    本文地址:https://www.mshxw.com/it/747297.html
    我们一直用心在做
    关于我们 文章归档 网站地图 联系我们

    版权所有 (c)2021-2022 MSHXW.COM

    ICP备案号:晋ICP备2021003244-6号