16进制数据显示成ASCII码

环境信息

  • EMQX 版本:开源 4.2.14
  • 操作系统及版本:centos 7
  • 其他

问题描述

新人求助,用MQTTX工具模拟设备上送16进制指令,emq桥接到kafka,在kafka中查看数据变成ASCII码(如下图),求大佬告知如何显示为设备的16进制指令。万分感谢!

工具发送消息
image

kafka中消息

配置文件及日志

是以那种方式配置的呢,方便分享下配置么?这样方便检查一些

非常感谢回复 用的是如下桥接程序

github.com

具体代码应该是如下:
image

1 个赞

看起来是社区的插件:+1:

代码可以的。在这行

{payload, Payload},

需要对 Payload 进行编码,例如,修改为 {payload, base64:encode(Payload)},

或者更友好的方案是,在这个插件的配置文件中,新增一个配置项来决定是否对 Payload 的内容做编码

感谢大佬解答,erlang纯小白,花了点时间学习了一下,不知道写的对不对,如下:

目前通过kafka看到的结果如下,应该是已经编码了

另外看到这篇规则引擎的帖子:规则引擎如何解析16进制数据

这样的方式是否就不用修改代码了呢? 纯小白emqx刚看没几天 :sweat_smile:

1 个赞

赞,实现没问题的:+1:

规则引擎里面的是可以直接 base64 encode/decode 的,问题要企业版才支持桥接数据到 Kafka 的。

(虽然也可以,通过规则引擎先解码然后 Republish 到另外一个主题,然后在通过你的 Kafka 插件把新主题的数据桥接过去,但是这样比较绕,现在这种方式也是可以的)

好的 非常感谢指导