`
can_do
  • 浏览: 265931 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

EMQX中如何使用hooks功能

阅读更多
【EMQX开始hook功能】
The EMQ broker implements a simple but powerful hooks mechanism to help users develop plugin.
The broker would run the hooks when a client is connected/disconnected, a topic is subscribed/unsubscribed or a MQTT message is published/delivered/acked

EMQX实现了简单并强大的hooks机制,帮助用户开发插件。
Broker在以下情况下运行hook:客户端建立连接、客户端断开连接、订阅主题、取消订阅主题、消息发布、消息分发、消息应答

1> EMQX提供两种hook,luahook和webhook
2> hook属于插件功能,开启hook有以下方式:

A> 通过# ./emqx_ctl plugins子命令进行配置
   =># ./emqx_ctl plugins load emqx_web_hook
   =># ./emqx_ctl plugins unload emqx_web_hook

B> 通过emqx webconsole在界面进行配置

3> webhook默认支持以下action
//////////begin///////////
web.hook.rule.client.connected.1     = {"action": "on_client_connected"}
web.hook.rule.client.disconnected.1  = {"action": "on_client_disconnected"}
web.hook.rule.client.subscribe.1     = {"action": "on_client_subscribe"}
web.hook.rule.client.unsubscribe.1   = {"action": "on_client_unsubscribe"}
web.hook.rule.session.created.1      = {"action": "on_session_created"}
web.hook.rule.session.subscribed.1   = {"action": "on_session_subscribed"}
web.hook.rule.session.unsubscribed.1 = {"action": "on_session_unsubscribed"}
web.hook.rule.session.terminated.1   = {"action": "on_session_terminated"}
web.hook.rule.message.publish.1      = {"action": "on_message_publish"}
web.hook.rule.message.deliver.1    = {"action": "on_message_deliver"}
web.hook.rule.message.acked.1        = {"action": "on_message_acked"}
//////////end////////////
注意:实际使用时,可针对需要的hook action进行配置,仅保留需要的ation即可,
比如:需要检测客户端是否断开的行为,可以只保留【on_client_disconnected】这个action。

4> webhook默认发起请求的方式如下:
0> uri=>可根据实际使用场景进行配置
1> method=POST
2> content-type=application/json
3> body data如下:
//////////////begin////////
{"action":"session_terminated","client_id":"ac110a0f98e25d9d8b75","reason":"normal"}
//////////////end//////////
注意:可通过client_id来关联到实际业务场景中;

参考:https://github.com/emqx/emqx-web-hook
分享到:
评论

相关推荐

    emqx-lua-hook:EMQ X钩钩

    使用emqx-lua-hook,你可以实现以下功能: - 认证与授权:通过在连接建立或发布消息时运行Lua脚本,实现自定义的用户认证和权限控制。 - 数据处理:对MQTT消息的内容进行修改、过滤或转换,以满足特定的应用需求。 ...

    使用 React Hooks 重构你的小程序.pdf

    Hooks 是一系列函数,它允许你在函数组件中使用状态(state)和其他 React 特性,例如生命周期钩子。其设计初衷是为了让函数组件能够利用 React 的核心特性,解决传统函数组件无法拥有自己的状态和生命周期的问题。 ...

    react-实现撤消和重做功能的ReactHooks

    React Hooks 是在React 16.8版本中引入的一种新特性,它允许我们在函数组件中使用状态以及其他的React特性,而无需编写类组件。主要的Hooks包括useState、useEffect、useContext等。 要实现撤消和重做功能,我们...

    前端开源库-hooks

    前端开源库中的hooks-js可能提供了这样的功能,允许开发者注册和管理前钩子(before hooks)和后钩子(after hooks),以便在执行特定函数时调用这些附加的处理逻辑。 例如,假设你有一个关键的业务逻辑函数`...

    React高级用法,高阶组件,Hooks

    React 高级用法是指在 React 框架中使用高阶组件(Higher-Order Component,HOC)和 Hooks 等高级技术来实现复杂的业务逻辑。高阶组件是 React 中的一种高级技巧,用于复用组件逻辑。HOC 是一种基于 React 的组合...

    Gitlab的Hooks(钩子)做Push代码检测1

    通过使用 Hooks 机制,可以实现代码规范检查、自动构建、自动测试、自动部署等功能。 在本文中,我们将使用 Gitlab 的 Hooks 机制来实现代码检测。我们可以利用 pre-receive 钩子来执行一个脚本,该脚本将检查推送...

    genesis line_hooks

    线上的工作流程中,line_hooks的使用能够极大地提高开发效率和代码质量。例如,它们可以帮助开发者: 1. **代码格式化**:在提交前自动格式化代码,保持团队成员间的一致性。 2. **静态代码分析**:运行代码分析...

    PyPI 官网下载 | pyinstaller-hooks-contrib-2020.5.tar.gz

    如果Python应用中使用了ZooKeeper,那么PyInstaller Hooks的这部分内容可以帮助正确打包ZooKeeper的相关依赖,使得应用程序在运行时能够正常与ZooKeeper服务通信。 "分布式"和"云原生"这两个标签则暗示了...

    Laravel开发-hooks

    Laravel开发中的“hooks”概念,主要是指通过注册和执行特定的函数或方法来扩展框架的功能,这些函数或方法在特定的生命周期点被调用。 1. **事件系统**:Laravel的事件系统是实现hooks的一种方式,它允许开发者在...

    composergithooks在你的composer配置中轻松管理githooks

    使用`composer-git-hooks`,开发者可以实现以下功能: 1. **自动代码风格检查**:通过在提交前运行PHP CS Fixer等工具,确保代码风格一致。 2. **代码质量分析**:使用PHPStan或 Psalm等静态代码分析工具检查潜在...

    前端开源库-git-hooks

    在**前端项目中使用Git Hooks**,可以实现以下功能: 1. **代码质量检查**:通过`eslint`或`prettier`进行代码风格检查和格式化,确保代码的一致性。 2. **静态类型检查**:利用`typescript`的`tsc`命令进行类型...

    Solidworks Hooks Demo

    在"Solidworks Hooks Demo"中,用户可以通过实际操作学习如何设置和使用Hooks。例如,你可以看到如何创建自定义挂钩形状,如何将挂钩应用到零部件上,以及如何调整挂钩的参数以满足不同的设计需求。此外,Demo可能还...

    react-TSLint规则用于检测ReactHooks的无效使用

    虽然不是专门针对React Hooks,但这个规则对于检测未使用的变量非常重要,包括可能在Hooks中声明但未使用的变量。避免未使用的变量可以减少代码混乱,提高代码效率。 5. **`@typescript-eslint/unbound-method`**:...

    react-Remax让你在小程序开发中使用真正的React完整的JSX甚至是最新的HooksAPI

    总结来说,Remax 是一个能够让开发者在小程序环境中使用React、JSX和Hooks的框架,它降低了小程序开发的学习曲线,提高了开发效率。通过这个框架,你能够利用React的现代特性,同时享受到多平台小程序的广泛覆盖和...

    基于 React hooks + Typescript + Cesium 的 三维 webgis 实战系列教程数据

    在本教程中,我们将深入探讨如何使用React hooks、Typescript以及Cesium库来构建一个功能丰富的三维WebGIS应用。这个实战系列将引导你逐步完成从基础设置到复杂功能的实现,充分利用这些技术的优势来创建一个交互式...

    深度了解vue.js中hooks的相关知识

    在Vue 2.x中,我们通常使用选项API或类组件来编写代码,而在Vue 3.x中,受到React Hooks的启发,引入了类似的hooks概念,以解决传统组件模式面临的一些问题。 1. **生命周期钩子**: Vue.js中的生命周期钩子是一...

    PyPI 官网下载 | pyproject-hooks-0.1.0.tar.gz

    标签为"Python库",意味着`pyproject-hooks`是一个Python编程语言的库或模块,可以被其他Python程序导入和使用,以提供特定的功能或服务。Python库广泛应用于各种场景,如数据处理、网络编程、科学计算等,它们极大...

    Hooks 被 React 推广为解决以下问题的一种方法: 帮助在组件之间重用有状态的逻辑 在复杂组件中按功能组织代码 在功能

    3. **在功能组件中使用状态**:Hooks使得无状态的功能组件(Functional Components)也能拥有自己的状态,避免了对类组件(Class Components)的依赖。 Owl是一个与React Hooks相关的框架,它提供了更广泛的钩子...

    前端开源库-require-extension-hooks

    这个库主要用于Node.js环境中,但也可以在支持CommonJS规范的其他平台中使用。 在JavaScript中,我们通常使用`require`或`import`语句来引入模块。然而,原生的加载机制仅支持特定的文件扩展名,如`.js`、`.json`和...

Global site tag (gtag.js) - Google Analytics