0基础小白简单入门使用emqx的webhook+规则实现Mysql数据持久化

EMQX (opens new window)是一款大规模可弹性伸缩的云原生分布式物联网 MQTT (opens new window)消息服务器。

作为全球最具扩展性的 MQTT 消息服务器,EMQX 提供了高效可靠海量物联网设备连接,能够高性能实时移动与处理消息和事件流数据,帮助您快速构建关键业务的物联网平台与应用。

#产品优势

  • 开放源码 (opens new window):基于 Apache 2.0 许可证完全开源,自 2013 年起 200+ 开源版本迭代。
  • MQTT 5.0 (opens new window):100% 支持 MQTT 5.0 和 3.x 协议标准,更好的伸缩性、安全性和可靠性。
  • 海量连接 (opens new window):单节点支持 500 万 MQTT 设备连接,集群可扩展至 1 亿并发 MQTT 连接。
  • 高性能:单节点支持每秒实时接收、移动、处理与分发数百万条的 MQTT 消息。
  • 低时延:基于 Erlang/OTP 软实时的运行时系统设计,消息分发与投递时延低于 1 毫秒。
  • 高可用:采用 Masterless 的大规模分布式集群架构,实现系统高可用和水平扩展。

一、安装

        这个官方的步骤已经很详细了,在这就不写了。

       概览 | EMQX 5.0 文档

二、数据持久化步骤

        1.  想要数据持久化,就得链接自己的数据库

            emqx开源版可以通过  访问控制--->认证--->密码认证--->使用mysql进行密码认证,如下图所示:

 2. 配置桥接  

        (1) 桥接名称 全部用小写,这个官方的说明书就有     
  
       (2) URL  填写自己在编写API  

           例如:post方式  http://localhost/index.php/index
        
                
        

       (3) 规则: 规则里主要研究的就是SQL 语法

 


         通过emqx官方的规则先查找出主题接受的信息  select * from "t/#"

                

本人用的thinkphp6 写得简单测试,希望能帮助到需要的朋友

      

<?php
namespace app\controller;

use app\BaseController;
use think\facade\Db;
use think\facade\Request;
class Index extends BaseController
{
    /**
     *User:yumai
     *Date:2023/5/11
     *Time:9:35
     * @return void
     * emqx:如果想要桥接数据到自己的数据库,就采用规则+桥接
     * 步骤及思路:
     *  1.通过mysql认证配置,让emqx成功链接到外部mysql即自己环境的mysql
     *
     *  2. 配置桥接: (1) 桥接名称 全部用小写,这个官方的说明书就有
     *
     *              (2) URL  填写自己在编写API 
     *
     *              (3) 规则: 规则里主要研究的就是SQL 语法 ,通过emqx官方的规则先查找出主题接受的信息  select * from "t/#"
     *
     */

    public function index()
    {
        $topic=Request::post('topic');
        $payload=Request::post('payload');
        $result=Db::name('mqtt_topic')
                ->insertGetId(['topic'=>$topic,'payload'=>$payload]); 
    }
}

  *******************************

       测试结果

        1. webSocket 客户端配置调试

 2.这是数据库写入

 ***********************************************************

再看emqx面板的监控数据 :主题监控数据

 规则监控数据

  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
对于 EMQ X Broker 的 Webhook 数据持久,可以通过以下步骤实现: 1. 首先,在 EMQ X Broker 的配置文件 `emqx.conf` 中启用 Webhook 插件。找到并修改以下配置项: ``` ## Load the Webhook plugin ## 启用 Webhook 插件 plugins.emqx_web_hook = on ``` 2. 然后,在 `emqx_web_hook.conf` 文件中配置 Webhook 的相关参数。找到以下配置项: ``` ## Enable/Disable the Webhook plugin ## 启用/禁用 Webhook 插件 web.hook.enabled = true ## Webhook HTTP POST request URL ## Webhook HTTP POST 请求的 URL web.hook.url = http://your-webhook-url ## Webhook HTTP POST timeout, unit: millisecond ## Webhook HTTP POST 超时时间,单位:毫秒 web.hook.timeout = 5000 ## Enable/Disable synchronous delivery of hook message to third party system ## 启用/禁用同步发送 Hook 消息给第三方系统 web.hook.sync_send = false ## Hook message retry count ## Hook 消息重试次数 web.hook.retry_count = 3 ## Hook message retry interval, unit: millisecond ## Hook 消息重试间隔时间,单位:毫秒 web.hook.retry_interval = 1000 ## Enable/Disable persistent message storage ## 启用/禁用消息持久存储 web.hook.persistent = on ## Maximum number of messages stored persistently by the Webhook plugin ## Webhook 插件持久存储的消息最大数量 web.hook.persistent.max_msgs = 10000 ``` 根据需求修改以上配置项,确保 `web.hook.persistent` 和 `web.hook.persistent.max_msgs` 配置项为正确的值。 3. 保存配置文件,并重启 EMQ X Broker 服务,使配置生效。 通过以上步骤,你可以实现 EMQ X Broker 的 Webhook 数据持久功能。具体实现方式可能因不同的环境和需求而有所不同,请根据实际情况进行调整。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值