centos72 环境下 mqtt 服务器安装

--------mqtt 服务器安装------------
一、安装 centos72 开发环境
    1、在docker 下安装 centos72 环境
    https://github.com/eclipse/mosquitto

   docker pull hub.c.163.com/public/centos:7.2-tools

    docker run --name centos72mqtt  -p 2203:22 -p 1883:1883 -v d:/go:/data  -d hub.c.163.com/public/centos:7.2-tools
    
    1883 是服务mqtt端口
    2203 是ssh 访问的 端口

    2、更新centos72 并 安装编译工具,gcc和g++
    yum update 
    yum install gcc-c++

    3.安装cmake git make 
    yum install cmake git make

    4、安装mosquitto编译所需的依赖库
    yum install openssl-devel  c-ares-devel   e2fsprogs-devel  uuid-devel libuuid-devel

    ln -s /usr/local/lib/libwebsockets.so.5 /usr/lib64/libwebsockets.so.5
    ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib64/libmosquitto.so.1


    7、下载 mosquitto
    wget https://mosquitto.org/files/source/mosquitto-1.5.4.tar.gz
    tar zxvf mosquitto-1.5.4.tar.gz

    此时mosquitto可以直接make编译了,但是不支持websocket协议,下面开启websocket协议

    5.修改config.mk 启用websocket
        WITH_WEBSOCKETS := yes 

    6.修改mosquitto.conf 设置端口等
        默认 listener 1883 本文使用默认端口 所以不用修改 

    7.下载libwebsocket开发库
    git clone https://git.oschina.net/woniu201/libwebsockets.git
    tar -zxvf libwebsockets-v1.5-stable.tar.gz

    8.开始编译安装libwebsockets
    cd libwebsockets-v1.5-stable
    mkdir build
    cd build
    cmake ..
    make 
    make install


    8、进入mosquitto-1.5.4目录
    make 
    make install

    9.添加mosquitto user
    adduser mosquitto

演示相关
    https://www.cnblogs.com/chen1-kerr/p/7258487.html

    启动服务
    cd src 
    ./mosquitto -c ../mosquitto.conf -v


    mosquitto_sub -d -t topic01
    mosquitto_pub  -t topic01 -m  mmmmmmmmmmm
    mosquitto_pub  -t topic01 -m  "sssssssssssssss"

------主要参考资料-----
https://www.2cto.com/kf/201701/592690.html


mqtt 客户端 相关
    https://www.jianshu.com/p/4fd95cae1a9c js 链接mqtt 

    https://blog.csdn.net/wangshuminjava/article/details/80252391  集群相关
    https://blog.csdn.net/bona020/article/details/73608618  windows 客户端
    https://github.com/novastone-media/MQTT-Client-Framework


---nodejs使用
    https://github.com/mqttjs/MQTT.js/tree/master/examples

    cd /usr/local/
    wget https://nodejs.org/dist/v8.9.4/node-v8.9.4-linux-x64.tar.gz
    下载完成后解压
    tar zxvf node-v8.9.4-linux-x64.tar.gz
     
    重命名为node
    mv node-v8.1.4-linux-x64 node
     
    配置环境变量
    vim /etc/profile
    #set for nodejs
    export NODE_HOME=/usr/local/node
    export PATH=$NODE_HOME/bin:$PATH

    source /etc/profile

    node -v

    npm -v

    ----安装
    npm install mqtt --save
    npm install mqtt-connection --save

---topic 设计
http://itindex.net/detail/58722-mqtt-topic-%E9%80%9A%E9%85%8D%E7%AC%A6

 主题层级分隔符  / :     用于分割主题层级,/分割后的主题,这是消息主题层级设计中很重要的符号。   比方说: aaa/bbb和  aaa/bbb/ccc 和aaa/bbb/ccc/ddd  ,这样的消息主题格式,是一个层层递进的关系,可通过多层通配符同时匹配两者,或者单层通配符只匹配一个。  这在现实场景中,可以应用到:公司的部门层级推送、国家城市层级推送等包含层级关系的场景。

 单层通配符  +:      单层通配符只能匹配一层主题。比如:   aaa/+     可以匹配 aaa/bbb ,但是不能匹配aaa/bbb/ccc。   单独的+号可以匹配单层的所有推送

 多层通配符  #:   多层通配符可以匹配于多层主题。比如: aaa/#   不但可以匹配aaa/bbb,还可以匹配aaa/bbb/ccc/ddd。  也就是说,多层通配符可以匹配符合通配符之前主题层级的所有子集主题。单独的#匹配所有的消息主题.

 注:   单层通配符和多层通配符只能用于订阅(subscribe)消息而不能用于发布(publish)消息,层级分隔符两种情况下均可使用。

 

https://segmentfault.com/a/1190000016561271

你可能感兴趣的:(linux,mqtt)