.png)
EMQX私有云安装部署
EMQX私有云安装部署
服务器配置
这里采用的 腾讯云服务器
开放服务器端口
因为要用mqtt协议,所以需要开放对应的端口。
| 端口号 | 用途 |
| —— | ———————— |
| 1883 | MQTT 协议端口 |
| 8883 | MQTT/SSL 端口 |
| 8083 | MQTT/WebSocket 端口 |
| 8080 | HTTP API 端口 |
| 18083 | Dashboard 管理控制台端口 |
| 8084 | SSL端口 |
进入控制终端 选择防火墙设置
EMQX安装
需要在云服务器上安装mqtt服务器,用于mqtt通信。
现在一台腾讯云服务器,并安装了Centos 7.9系统,在这个基础上,我们选择emqx作为mqtt服务器进行安装配置。
下载适合操作系统的固定版本的安装包:EMQX版本:5.0.10 下载 EMQX
通过命令进行安装
// 安装 EMQX sudo yum install emqx-5.4.0-el7-amd64.rpm -y // 启动 EMQX sudo systemctl start emqx
过程如下:
EMQX配置
登录EMQX内置管理控制台
输入地址访问服务器 默认账号:admin 密码:public
如果域名访问则一定需要备案!
打开浏览器,输入地址:
第一次登陆后,会提示修改密码。这里我已经修改过了
登录成功的页面显示:
MQTT配置
这里可以配置MQTT的一些参数,根据自己的需求进行配置
测试MQTT通信
新建一个客户端测试
连接之后,然后点击订阅和发布 下面能正常接收 说明 MQTT 服务器通信已经正常,没有问题了
并且在这个页面可以看到 主题发布
和 主题订阅
的格式。
MQTT客户端登录服务器测试
接下来就打开我们自己的MQTT客户端登录MQTT服务器进行测试数据的通信。
端口选择: 1883
根据软件参数填入参数,登录,进行主题的发布和订阅。
说明: 目前还没有配置客户端认证,现在只要IP和端口输入正确,MQTT三元组可以随便输入,都可以登录上服务器的,服务器没有对三元组做校验。
EMQ X 默认配置中启用了匿名认证,任何客户端都能接入 EMQX。没有启用认证插件或认证插件没有显式允许/拒绝(ignore)连接请求时,EMQX 将根据匿名认证启用情况决定是否允许客户端连接。
然后打开EMQX
的管理后台,可以看到我们的设备已经登录服务器了,名字为test1
。
在订阅主题的页面也可以看到我们客户端设备订阅的主题。
客户端认证配置
EMQX 默认配置中启用了匿名认证,任何客户端都能接入 EMQX。没有启用认证插件或认证插件没有显式允许/拒绝(ignore)连接请求时,EMQX 将根据匿名认证启用情况决定是否允许客户端连接。
在正式产品里肯定是要启用认证的,不然任何设备都能接入。
打开客户端认证界面
创建选择密码认证
设置内置数据库
设置认证方式(都可以默认,不用改),直接点击创建。
创建成功后,点击用户管理
添加用户
添加成功
添加之后,打开MQTT客户端进行测试
MQTT客户端ID 自定义即可 代表当前设备
MQTT客户端消息互发测试
添加两个设备
为了方便测试设备互相订阅主题,数据收发,在客户端认证页面至少添加2个设备 这里是 test1
和 test2
设备间测试
设备1订阅设备2的主题,设备2订阅设备1的主题,实现数据互发
- 配置 MQTT连接
设备1:
连接成功
设备2:
同理 连接成功
自定义 订阅主题
创建成功:
- 设备2 订阅 设备1 向设备1 发送数据
- 设备1 设备2 互相订阅 实现数据收发