美文网首页
MQTT安装部署及实战

MQTT安装部署及实战

作者: hugoren | 来源:发表于2019-06-25 17:31 被阅读0次

普及

mqtt是ibm开源出来的万物互联的协议
如果要使用,还需再封装与一层才行,类似于tcp/udp

开源的选择

服务端选择 mosquitto

客户端选择 paho

image.png
目前支持
image.png

服务端安装

https://mosquitto.org/files/source/
下载最新的包

image.png
  1. 依赖的库:libssl-dev,libc-ares-dev,uuid-dev,g++
    yum install -y libssl-dev libc-ares-dev uuid-dev g++ gcc-c++ cmake
可选
yum install -y lib-uuid 支持为每个客户端生成uuid
yum install libwebsockets 支持websocket

  1. 解压安装
    make && make install


    image.png

ps :安装目录在/etc/mosquitto

  1. 建言用户
sudo groupadd mosquitto
sudo useradd -g mosquitto mosquitto

ps:如果不建,会报: Error: Invalid user 'mosquitto'.

由于操作系统版本及架构原因,很容易出现安装之后的链接库无法被找到,如启动mosquitto客户端可能出现找不到
libmosquitto.so.1文件,因此需要添加链接库路径

//添加路径
vim /etc/ld.so.conf.d/liblocal.conf
/usr/local/lib64
/usr/local/lib

//刷新
ldconfig
  1. 启动
1. mosquitto -c /etc/mosquitto/mosquitto.conf 

2. nohup mosquitto -c mosquitto.conf >>  mosquitto.log &
image.png

5.测试验证

不需要用户密码验证

./mosquitto_sub -t hello
 mosquitto_pub -t hello  -h localhost -m "hi"
image.png

需要用户名密码验证

mosquitto_sub -t hello -h 127.0.0.1 -u hugo -P xxx
mosquitto_pub -t hello  -h localhost -m "hi9" -u hugo -P xxx

安全性配置

用户名和密码验证

mosquitto中可以添加多个用户,只有使用用户名和密码登陆服务器才允许用户进行订阅与发布操作。可以说用户机制是mosquitto重要的安全机制,增强服务器的安全性。
用户与权限配置需要修改3处地方:

1、mosquitto中最最最重要的配置文件mosquitto.conf(改两个地方)
2、pwfile.example (保存用户名与密码)
3、aclfile.example (保存权限配置)

新增用户:
  1: 打开mosquitto.conf文件,找到allow_anonymous节点,这个节点作用是,是否开启匿名用户登录,默认是true。打开此项配置(将前面的 # 号去掉)之后将其值改为false

    修改前:#allow_anonymous

    修改后:allow_anonymous false

2: 找到password_file节点,这个节点是告诉服务器你要配置的用户将存放在哪里。打开此配置并指定pwfile.example文件路劲(注意是绝对路劲)

    修改前:#password_file
    修改后:password_file  /etc/mosquitto/pwfile.example (这里的地址根据自己文件实际位置填写)

3: 创建用户名和密码、打开命令窗口 键入如下命令:  
mosquitto_passwd -c /etc/mosquitto/pwfile hugo
提示连续两次输入密码、创建成功。命令解释: -c 创建一个用户、/etc/mosquitto/pwfile.example 是将用户创建到 pwfile.example 文件中、admin 是用户名。

注意,mosquitto_passwd -c命令每次都只会生成只包含一个用户的文件,如果你想在passwd.conf中存放多个用户, 可以使用mosquitto_passwd -b 命令

  • mosquitto_passwd -b [最终生成的password_file文件] [用户名] [密码]*

  • mosquitto_passwd -b命令必须在控制台输入明文的密码,且每次只是在passwd.conf中新增一个用户,不会覆盖之前已生成的用户*

  • 同时也可以使用mosquitto_passwd -D命令删除一个用户*

  • mosquitto_passwd的具体应用可以参考 http://mosquitto.org/man/mosquitto_passwd-1.html*

此时所有客户端连接 Mosquitto 服务都需要输入用户名密码、

用户与topic权限配置

Mosquitto 权限是根据 topic 控制的、类似与目录管理。您可以设定每个用户订阅/发布权限、也可以设定每个用户可访问的topic范围、从而达到权限控制的目的
vi aclfile

        user hugo
        topic readwrite hello

遇到的问题

  1. libmosquitto.so.1: cannot open shared object file: No such file or directory
    原因是没有绑定动态库
cp /usr/local/lib/libmosquitto.so.1 /usr/lib 
或
sudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1
ldconfig

客户端实战

客户端测试
发布:  mosquitto_pub -t hello  -h localhost -m "hello" -u hugo -P xxx
订阅:  ./mosquitto_sub -t hello -u hugo -P xxx

这里以python为例
https://github.com/eclipse/paho.mqtt.python

相关文章

  • MQTT安装部署及实战

    普及 mqtt是ibm开源出来的万物互联的协议如果要使用,还需再封装与一层才行,类似于tcp/udp 开源的选择 ...

  • 基于RabbitMQ的MQTT使用

    因为公司业务需求用到MQTT,简单记录一下MQTT的部署,以及MQTTBOX的使用。首先需要安装好RabbitMQ...

  • 01_Node.js 安装

    前言 “Node.js 从基础到实战” 系列文章中,讲解了 Node.js 从安装到项目实战及项目部署整个过程所需...

  • MQTT服务器的部署 1(centos)

    MQTT的服务器部署,相对来说也是比较容易的。 MQTT可以部署在windows环境下,也可以部署在linux环境...

  • MQTT的安装与调试

    一、MQTT简介 二、MQTT下载 三、MQTT安装 1、解压安装 解压到D:\yangkunlin\tools\...

  • LNMT动静分离实战

    LNMT实现动静分离实战 实验准备: 1. tomcat安装部署 <1>. 安装jdk <2>. 安装tomcat...

  • vue-webpack项目安装及配置

    快速部署 详细部署 基本环境 node 安装 及 安装成功验证 安装node程序 检验安装成功及版本校验使用自带的...

  • MQTT安装及使用

    在进行硬件和web进行交互过程中,要解决传感器和输出控制装置信号如何和服务器进行通信的问题(可以通过socket建...

  • git部署

    Gitlab安装部署及基础操作

  • 前端使用mqtt,用于接收消息

    主要是用vue 安装mqtt npm i mqtt

网友评论

      本文标题:MQTT安装部署及实战

      本文链接:https://www.haomeiwen.com/subject/tbnkqctx.html