EMQX私有云安装部署

服务器配置

这里采用的 腾讯云服务器

开放服务器端口

因为要用mqtt协议,所以需要开放对应的端口。

| 端口号 | 用途 |
| —— | ———————— |
| 1883 | MQTT 协议端口 |
| 8883 | MQTT/SSL 端口 |
| 8083 | MQTT/WebSocket 端口 |
| 8080 | HTTP API 端口 |
| 18083 | Dashboard 管理控制台端口 |
| 8084 | SSL端口 |

进入控制终端 选择防火墙设置

image-20231228190304900

EMQX安装

EMQX 概览

需要在云服务器上安装mqtt服务器,用于mqtt通信。

现在一台腾讯云服务器,并安装了Centos 7.9系统,在这个基础上,我们选择emqx作为mqtt服务器进行安装配置。

  1. 下载适合操作系统的固定版本的安装包:EMQX版本:5.0.10 下载 EMQX

  2. 通过命令进行安装

    // 安装 EMQX
    sudo yum install emqx-5.4.0-el7-amd64.rpm -y
    // 启动 EMQX
    sudo systemctl start emqx
    

过程如下:

image-20231228181506828

image-20231228181425636

image-20231228181403149

image-20231228181304517

image-20231228181333296

EMQX配置

登录EMQX内置管理控制台

EMQX Dashboard

输入地址访问服务器 默认账号:admin 密码:public

如果域名访问则一定需要备案!

打开浏览器,输入地址:

image-20231228181804860

第一次登陆后,会提示修改密码。这里我已经修改过了

登录成功的页面显示:

image-20231228182256175

MQTT配置

这里可以配置MQTT的一些参数,根据自己的需求进行配置

image-20231228182955778

测试MQTT通信

新建一个客户端测试

image-20231228182914651

连接之后,然后点击订阅和发布 下面能正常接收 说明 MQTT 服务器通信已经正常,没有问题了

并且在这个页面可以看到 主题发布主题订阅的格式。

image-20231228183132803

MQTT客户端登录服务器测试

接下来就打开我们自己的MQTT客户端登录MQTT服务器进行测试数据的通信。

端口选择: 1883

根据软件参数填入参数,登录,进行主题的发布和订阅。

image-20231108112828605

说明: 目前还没有配置客户端认证,现在只要IP和端口输入正确,MQTT三元组可以随便输入,都可以登录上服务器的,服务器没有对三元组做校验。

EMQ X 默认配置中启用了匿名认证,任何客户端都能接入 EMQX。没有启用认证插件或认证插件没有显式允许/拒绝(ignore)连接请求时,EMQX 将根据匿名认证启用情况决定是否允许客户端连接。

然后打开EMQX的管理后台,可以看到我们的设备已经登录服务器了,名字为test1

image-20231108112900540

在订阅主题的页面也可以看到我们客户端设备订阅的主题。

image-20231108112938585

客户端认证配置

EMQX 默认配置中启用了匿名认证,任何客户端都能接入 EMQX。没有启用认证插件或认证插件没有显式允许/拒绝(ignore)连接请求时,EMQX 将根据匿名认证启用情况决定是否允许客户端连接。

在正式产品里肯定是要启用认证的,不然任何设备都能接入。

  1. 打开客户端认证界面

    image-20231228183528032

  2. 创建选择密码认证

    image-20231228183620741

  3. 设置内置数据库

    image-20231228183707893

  4. 设置认证方式(都可以默认,不用改),直接点击创建。

    image-20231228183737245

  5. 创建成功后,点击用户管理

    image-20231228183815994

  6. 添加用户

    image-20231228183858390

  7. 添加成功

    image-20231228183928224

  8. 添加之后,打开MQTT客户端进行测试

    image-20231228184146794

  9. MQTT客户端ID 自定义即可 代表当前设备

MQTT客户端消息互发测试

添加两个设备

为了方便测试设备互相订阅主题,数据收发,在客户端认证页面至少添加2个设备 这里是 test1test2

image-20231228184333587

设备间测试

设备1订阅设备2的主题,设备2订阅设备1的主题,实现数据互发

  1. 配置 MQTT连接

设备1:

image-20231228184602574

连接成功

image-20231228184643431

设备2:

同理 连接成功

image-20231228184723195

  1. 自定义 订阅主题

    image-20231228184836199

​ 创建成功:

image-20231228184915058

  1. 设备2 订阅 设备1 向设备1 发送数据

image-20231228185117765

image-20231228185140218

  1. 设备1 设备2 互相订阅 实现数据收发

image-20231228185827320