编解码举例 - Avro
比如,将 “name” 字段为 “Shawn” 的消息重新发布到主题 “avro_user/Shawn”。
在 EMQX 的 Dashboard (opens new window) 界面,使用下面的参数创建一个 Avro Schema:
名称:avro_user
Schema:
使用刚才创建好的 Schema 来编写规则 SQL 语句:
这里的关键点在于 :
schema_decode
函数将 payload 字段的内容按照 ‘avro_user’ 这个 Schema 来做解码;
- 动作类型:消息重新发布
- 目的主题:avro_user/${avro_user.name}
- 消息内容模板:${avro_user}
这个动作将解码之后的 “user” 以 JSON 的格式发送到 avro_user/${avro_user.name}
这个主题。其中 是个变量占位符,将在运行时被替换为消息内容中 “name” 字段的值。
规则创建好之后,就可以模拟数据进行测试了。
下面的代码使用 Python 语言填充了一个 User 消息并编码为二进制数据,然后将其发送到 “t/1” 主题。详见 。
- 检查 Websocket 端收到主题为
avro_user/Shawn
的消息: