+
+ EMQ X
+ 在消息发布、事件触发时将触发规则引擎,满足触发条件的规则将执行各自的
+ SQL 语句筛选并处理消息和事件的上下文信息。
+
+
+ 规则引擎借助响应动作可将特定主题的消息处理结果存储到数据库,发送到
+ HTTP Server,转发到消息队列 Kafka 或
+ RabbitMQ,重新发布到新的主题甚至是另一个 Broker
+ 集群中,每个规则可以配置多个响应动作。
+
+
+ 1. 选择发布到 't/#' 主题的消息,并筛选出全部字段:
+
+
+ SELECT * FROM "t/#"
+
+
+ 2. 选择发布到 't/a' 主题的消息,并从 JSON
+ 格式的消息内容中筛选出 "x" 字段:
+
+
+ SELECT payload.x as x FROM "t/a"
+
+
+ 规则引擎使用 $events/ 开头的虚拟主题(事件主题)处理
+ EMQ X
+ 内置事件,内置事件提供更精细的消息控制和客户端动作处理能力,可用在
+ QoS 1 QoS 2 的消息抵达记录、设备上下线记录等业务中。
+
+
+ 1. 选择客户端连接事件,筛选 Username 为 'emqx'
+ 的设备并获取连接信息:
+
+
+ SELECT clientid, connected_at FROM
+ "$events/client_connected" WHERE username =
+ 'emqx'
+
+
规则引擎和 SQL 语句的详细教程参见 EMQ X 文档。
+