【开源物联网平台】FastBee使用EMQX5.0接入步骤

​🌈 个人主页:帐篷Li
🔥 系列专栏:FastBee物联网开源项目
💪🏻 专注于简单,易用,可拓展,低成本商业化的AIOT物联网解决方案

目录

一、将java内置mqtt broker切换成EMQX5.0

1.1 修改application.yml配置

1.2 使用docker-compose-emqx.yml进行部署

二、EMQX5.0配置

2.1 配置文件方式

2.2 控制台创建方式

2.2.1配置Http认证

2.2.2 配置设备上下线回调

一、将java内置mqtt broker切换成EMQX5.0

1.1 修改application.yml配置

1.2 使用docker-compose-emqx.yml进行部署

# 使用emqx版本mqtt broker输入该命令:
sudo cp -rf docker-compose-emqx.yml docker-compose.yml

二、EMQX5.0配置

  • EMQX配置Http认证和Webhook(处理客户端上下线),有两种方式:
    • 通过emqx.conf文件配置,已有配置好的文件位于 docker/data/emqx/ect文件夹;
    • 通过18083端口,打开EMQX控制台,创建客户端认证,数据桥接和规则
  • EMQX账号
    • 控制台默认账号 (admin,public)
    • docker-compose方式部署,emqx.conf中配置的账号(admin,admin123)

注意

EMQX控制台修改的账号,配置的Http认证、Webhook和规则会被emqx.conf中对应配置覆盖掉。官网解释如下:

  • 通过 Dashboard、HTTP API 或 CLI 进行的更改将在运行时写入 data/configs/cluster.hocon 文件并立即生效。
  • 如果相同的配置项在 etc/emqx.conf 文件中设置不同值,则在重新启动后,最终生效的是 etc/emqx.conf 中的配置。 为避免混淆,强烈建议不要在 cluster.hocon 和 emqx.conf 中具有相同的配置键。

emqx.conf配置文件中存在任何规则,设备消息转发的规则,也要配置在emqx.conf中。

2.1 配置文件方式

下面内容复制到emqx.conf文件中

# 设置控制台端口和默认账号
dashboard {
    listeners.http {
        bind = 18083
    }
    default_username = "admin"
    default_password = "admin123"
}

# http 认证
authentication  = [
  {
    mechanism = password_based
    backend = http
    enable = true
    method = post
    url = "http://177.7.0.13:8080/iot/tool/mqtt/authv5"
    body {
        clientid = "${clientid}"
        username = "${username}"
        password = "${password}"
        peerhost = "${peerhost}"
    }
    headers {
        "Content-Type" = "application/json"
        "X-Request-Source" = "EMQX"
    }
  }
]

# WebHook(匹配上线和下线规则后触发)
bridges {
  webhook.fastbee_hook  =
  {
    enable  =  true
    connect_timeout  =  15s
    retry_interval  =  60s
    pool_type  =  random
    pool_size  =  8
    enable_pipelining  =  100
    max_retries  =  2
    request_timeout  =  15s
    method  =  post
    url  =  "http://177.7.0.13:8080/iot/tool/mqtt/webhookv5"
    body  =  "{\"clientid\" : \"${clientid}\",\"event\" : \"${event}\",\"peername\" : \"${peername}\"}"
    headers  =  {  accept = "application/json"  "cache-control" = "no-cache"  connection = "keep-alive"  "content-type" = "application/json"  "keep-alive" = "timeout=5"}
  }
}

# 规则(处理上线和下线)
rule_engine {
  ignore_sys_message  =  true
  jq_function_default_timeout  =  10s
  rules.fastbee_rule  =  
  {
    sql  =  "SELECT * FROM \"t/#\",\"$events/client_connected\", \"$events/client_disconnected\", \"$events/session_subscribed\""
    actions  =  ["webhook:fastbee_hook"]
    enable  =  true
    description  =  "处理设备上下线和订阅完主题的规则"
  }
}

2.2 控制台创建方式

2.2.1配置Http认证

请求方式:POST

请求地址:http://177.7.0.13:8080/iot/tool/mqtt/authv5  (地址可以是内网或者外网,确保能访问)

请求Body:
{
  "clientid": "${clientid}",
  "password": "${password}",
  "username": "${username}",
  "peerhost": "${peerhost}"
}
2.2.2 配置设备上下线回调
  1. Webhook配置,设置回调http接口

数据桥接名称:fastbee_hook (随意填写)

请求方式:POST

请求地址:http://177.7.0.13:8080/iot/tool/mqtt/webhookv5 (地址可以是内网或者外网,确保能访问)

请求Body:
{"clientid" : "${clientid}", "event" : "${event}", "peername" : "${peername}"}
  1. 创建规则,让设备连接/断开连接/主题订阅完成时,回调http api

规则名称:fastbee_rule (随意填写)
SQL编辑器内容(分别代表客户端连接/断开连接/主题订阅完成):
SELECT * FROM "t/#","$events/client_connected", "$events/client_disconnected", "$events/session_subscribed"  
动作:选择创建的数据桥接fastbee_hook

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/433449.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

电商之战:实时监控竞争对手战术,掌握市场先机!

淘宝天猫、拼多多、抖音、小红书等国内平台,甚至包括亚马逊、速卖通等跨境商家,在竞争如此激烈的电商平台,想要脱颖而出,打造店铺的差异化运营,通过对竞争对手甚至选品的监控可以更好地了解市场趋势和变化。 这有助于…

Jmeter正则表达式提取器

伙伴们是否遇到过以下的场景: 响应报文类似下面的这样 我们要使用phrase后面的其中一个值。 使用正则表达式提取后匹配出多少值,提取结果如下: 现在的问题是,如果我们要使用正则表达式提取后的:使用其中的第1个和第1…

前端H5动态背景登录页面(上)

最近一段时间看一些关于前端的东西&#xff0c;下面分享两个非常不错的前端动态背景登陆页面&#xff0c;还有几个等后面有时间了再整理。 1、彩色气泡登录页面 下面是源代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8…

互联网智慧工地源码,“互联网+建筑大数据”SaaS微服务架构,支持PC端、手机端、数据大屏端

智慧工地源码&#xff0c;支持多端展示&#xff08;PC端、手机端、平板端&#xff09;SaaS微服务架构&#xff0c;项目监管端&#xff0c;工地管理端源码 智能时代的风暴已经融入了我们生活的每个方面&#xff0c;智能手机、iPad等移动终端智能设备已经成为我们生活的必需品。智…

[ 云计算 | AWS ] ChatGPT 竞争对手 Claude 3 上线亚马逊云,实测表现超预期

文章目录 一、前言二、Claude 3 介绍以及相关测试细节三、在亚马逊云科技上体验 Claude 33.1 在 Amazon Bedrock 服务中配置 Claude 33.2 为聊天配置使用 Claude 3 模型3.3 Caude 3 Sonet 聊天体验 四、文末总结五、参考文献 一、前言 3月4号&#xff0c;Anthropic 发布了号称…

基于el-tree实现懒加载穿梭条

一、关键代码 <template><div><!-- 左侧待选列表 --><div class"left-box"><p>待选列表</p><el-input placeholder"输入关键词过滤" v-model"leftFilterText" clearable/><el-treeref"tree…

鱼哥赠书活动第12期:《基于React低代码平台开发》

鱼哥赠书活动第12期&#xff1a;《基于React低代码平台开发》 一、React与低代码平台的结合优势二、基于React的低代码平台开发挑战三、基于React的低代码平台开发实践四、未来展望内容简介&#xff1a;作者简介如何阅读&#xff1a;适合阅读人群&#xff1a;赠书抽奖规则:往期…

OpenText™ Migrate 软件, 结构化、可重复的工作负载迁移,停机时间几乎为零

OpenText™ Migrate 允许用户将任何规模和各种复杂度的物理、虚拟和云工作负载轻松地迁移到任何环境&#xff0c;并且停机时间几乎为零。微调自动化有助于协调流程的每个阶段。 为什么选择 OpenText Migrate&#xff1f; 1、满足您所有迁移需求的单一解决方案 OpenText Migra…

SqlServer中连续号及断号查询—附源码

效果如下图所示&#xff1a; SqlServer中连续号及断号查询SQL如下&#xff1a; --1.定义临时表 DECLARE TestTemp TABLE(TestCode NVARCHAR(50),TestNum INT )DECLARE DataTemp TABLE(TestCode NVARCHAR(50),TestNumStr NVARCHAR(100) )--2.插入测试数据 INSERT INTO TestT…

供应链优化:降本增效的核心战略——张驰咨询

在当今这个高度竞争的商业环境中&#xff0c;企业为了保持竞争力&#xff0c;不断寻求降低成本和提升效率的策略变得至关重要。有效的成本控制和效率提升不仅能够增加企业的利润率&#xff0c;还能增强其市场地位和客户满意度。以下是一些实用的策略&#xff0c;旨在帮助企业实…

2024春招面试,2024年阿里Android高级面试题分享

前言 作为一个3-5年的Android工程师&#xff0c;我们经常会遇到这些瓶颈&#xff1a; 1.技术视野窄 长期在小型软件公司&#xff0c;外包公司工作&#xff0c;技术视野被限制的太厉害 2.薪资提升难 初中级Android岗位薪资上升空间有限&#xff0c;基本上你想拿15k以上&#…

android开发教程百度网盘,高并发系统基础篇

展望未来 操作系统 移动操作系统的演变过程&#xff0c;从按键交互的塞班功能机到触摸屏交互的Android/IOS智能机&#xff0c;从小屏幕手机到全面屏、刘海屏、水滴屏。任何系统无非干两件事&#xff1a;输入和输出&#xff0c;接收到外部输入信号后经过操作系统处理后输出信息…

【前端系列】vue

这里写目录标题 一、Vue简介1.1 主流前端框架/库简介 二、下载和安装Vue2.1 下载2.2 安装完成后&#xff0c;检查2.3创建全局安装目录和缓存日志目录2.4 为了下载包快速&#xff0c;改源为淘宝镜像2.5 查看npm配置修改是否成功 三、配置环境变量环境变量—用户变量—选中Path—…

字符指针数组指针的理解

1.字符指针&#xff1a;也就是存放字符地址的指针&#xff08;和整型指针差不多&#xff09; 代码如下&#xff1a; int main() {char ch w;char *pc &ch;*pc w;return 0; } 2.数组指针&#xff1a;也就是指向数组的指针 2.1数组指针如何初始化 int main() {int ar…

学习大数据,所必需的java基础(8)

文章目录 字符缓冲流字符缓冲输出流 _Buffered和Writer字符缓冲输入流字符缓冲流练习 转换流字符编码字符集转换流转换流_OutputStreamWriter序列流和反序列流的介绍序列化流_ObjectOutputStream反序列化_ObjectInputStream不想被序列化操作反序列化时出现的问题以及分析和解决…

低代码平台,面向业务or技术?

低代码开发平台是一种新兴的技术趋势&#xff0c;它为企业提供了快速、高效地开发应用程序的方法。随着数字化转型的加速&#xff0c;越来越多的企业开始关注低代码开发平台&#xff0c;并在实际应用中取得了一定的成果。 作为使用者来说&#xff0c;面对市场上形形色色的低代…

力扣hot100:438.找到字符串中所有字母异位词(滑动窗口)

26个字符&#xff0c;我复制怎么了&#xff1f;26个字符我比较个数怎么了&#xff1f; 顶多时间复杂度*26 本题用固定窗口大小的滑动窗口每次比较包含26个元素的数组次数&#xff0c;最容易写。 动态窗口大小哈希表存数值&#xff08;双指针差值&#xff09;难想难写。 一、动态…

【随笔】yt-dlp使用cookie完成身份认证 python yt-dlp库常用参数

文章目录 一、提取cookies1.1 不提取出来1.2 提取为单独文件1.2 使用cookies 二、yt-dlp 用法&#xff08;python库&#xff09;基本参数视频参数播放列表参数高级参数 以前用yt-dlp做的软件&#xff1a; 但是部分网站需要在登录状态才能获取更高格式的内容。 比如&#xff…

dolphinscheduler试用(一)(边用边修bug。。。。create tenant error)

&#xff08;作者&#xff1a;陈玓玏&#xff09; 前提&#xff1a;部署好了dolphinscheduler&#xff0c;部署篇见https://blog.csdn.net/weixin_39750084/article/details/136306890?spm1001.2014.3001.5501 官方文档见&#xff1a;https://dolphinscheduler.apache.org/…

数据结构(二)——线性表

二、线性表 2.1线性表的定义和基本操作 2.1.1 线性表的基本概念 线性表&#xff1a;是具有相同数据类型的 n 个数据元素的有限序列。(Eg:所有的整数按递增次序排列&#xff0c;不是顺序表&#xff0c;因为所有的整数是无限的)其中n为表长&#xff0c;当n0时线性表是一个空表…