【fly-iot飞凡物联】(12):EMQX 5.1使用docker 本地部署,接入到Actorcloud的数据库中,成功连接创建的设备,可以控制设备访问状态

目录

  • 前言
    • 1,关于
    • [2,使用docker 进行部署](#2,使用docker 进行部署)
    • [3,配置API key 可以使用接口访问的](#3,配置API key 可以使用接口访问的)
    • [4,设置客户端认证,连接PostgreSQL 数据连接](#4,设置客户端认证,连接PostgreSQL 数据连接)
    • 5,使用客户端进行连接
    • [6,EMQX的API 接口地址](#6,EMQX的API 接口地址)
    • 7,总结

前言


本文的原文连接是:
https://blog.csdn.net/freewebsys/article/details/108971807

fly-iot飞凡物联专栏:
https://blog.csdn.net/freewebsys/category_12219758.html

未经博主允许不得转载。

博主CSDN地址是:https://blog.csdn.net/freewebsys

博主掘金地址是:https://juejin.cn/user/585379920479288

博主知乎地址是:https://www.zhihu.com/people/freewebsystem

1,关于


EMQX 是一款开源 (opens new window)的大规模分布式 MQTT 消息服务器,功能丰富,专为物联网和实时通信应用而设计。EMQX 5.0 单集群支持 MQTT 并发连接数高达 1 亿条,单服务器的传输与处理吞吐量可达每秒百万级 MQTT 消息,并保证延迟在亚毫秒级。

EMQX 支持多种协议,包括 MQTT (3.1、3.1.1 和 5.0)、HTTP、QUIC 和 WebSocket 等,保证各种网络环境和硬件设备的可访问性。EMQX 还提供了全面的 SSL/TLS 功能支持,比如双向认证以及多种身份验证机制,为物联网设备和应用程序提供可靠和高效的通信基础设施。

https://www.emqx.io/docs/zh/v5.1/

https://www.emqx.io/docs/zh/v5.1/deploy/install-docker.html

2,使用docker 进行部署


配置帐号:admin

密码:public

使用最新版本即可

bash 复制代码
docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx/emqx:latest
端口 说明
18083 web管理端admin端口
1883 tcp端口常用
8883 ssl的tcp端口
8083 websocket端口常用
8084 ssl的websocket端口


可以忽略下,然后就进入了管理端。

3,配置API key 可以使用接口访问的


这个时候可以再创建一个 访问API key:

http://127.0.0.1:18083/#/APIKey

然后把这个配置放到 arctorcloud 上:

然后创建一个设备:

密码是:11111111

4,设置客户端认证,连接PostgreSQL 数据连接


设置客户端认证:

这个最重要!!

要有 as password 和双引号才可以,是PostgerSQL 特殊的写法:

bash 复制代码
SELECT "token" as password FROM devices where 
"deviceUsername"  = ${username} LIMIT 1 

配置成功:

还可以进行 客户端认证

也可以配置 客户端授 权或者关闭授权:

bash 复制代码
SELECT 'allow' as action, 'all' as permission, 'all' as topic 
 FROM devices where "deviceUsername" = ${username} 

5,使用客户端进行连接


web页面中自带一个客户端,直接连接就可以。

这个设备就是在 Actorcloud 中创建的设备

6,EMQX的API 接口地址


EMQX 还有本地 swagger 接口地址:

http://localhost:18083/api-docs/index.html#

在管理端中设置了API 的 username 和 password 就可以登陆了。

然后就可以直接访问了:

接口非常的丰富,授权之后就可以直接访问了,可以方便和其他系统进行对接。

进行二次开发了。

7,总结


终于弄明白了,EMQX的使用,同时也支持 MQTT5 了,可以正常连接到数据库中创建的设备了。

同时支持很多的扩展接口。可以非常的方便进行管理端的开发和连调了。

但是回调接口目前不知道通过什么job 方式去获得在线状态。

同时在 actorcloud 上还有允许访问状态,可以修改成:

sql 复制代码
-- 客户端认证
SELECT "token" as password FROM devices where 
"deviceUsername"  = ${username} AND "blocked" = 0
 LIMIT 1 
 
-- 客户端授权
SELECT 'allow' as action, 'all' as permission, 'all' as topic 
 FROM devices where "deviceUsername" = ${username} AND "blocked" = 0 
 

都是非常不错的开源项目,持续研究中,把两个项目融合起来跑,

actorcloud项目和Emqx 项目一起部署起来。

本文的原文连接是:
https://blog.csdn.net/freewebsys/article/details/108971807

相关推荐
Leo Han16 分钟前
Spring中实现动态数据源切换,基于AbstractRoutingDataSource
java·数据库·spring
天一生水water16 分钟前
一个vue项目如何运行在docker
vue.js·docker·软件工程
捂月22 分钟前
spring boot有哪些不足之处?
数据库·spring boot·sql
运维老司机39 分钟前
zabbix自定义监控项监控docker容器
docker·容器·zabbix
冰零(lane)1 小时前
Spring Boot 动态数据源切换
java·数据库·spring boot
狗贤1 小时前
harbor和docker配置https访问
docker·容器·https
所待.3831 小时前
MySQL之视图
android·数据库·mysql
xuanloyer1 小时前
Oracle 深入学习 Part 10: Managing Undo Data(管理Undo数据)
开发语言·数据库·oracle
tjsoft2 小时前
delphi 12 webserver post数据与对应的接收方式
服务器·前端·数据库
Lostgreen2 小时前
图数据库 & Cypher语言
大数据·数据库·笔记