解码/保存来自MQTT Broker的数据



这是我的第一个帖子,因为经过长时间的搜索,我没有找到任何令人满意的答案…

我可以使用如下命令从mqtt代理实时检索数据:

.mosquitto_sub -h XX.XX.XX -t XX/XX/XX -p XXXX --psk-identity XXX --psk XXXXXXXXXXXXXXX

但是我有两个问题:

  1. shell中显示的数据似乎被shell编码为不可读的字符(例如:mosquitto_sub)。正如我所理解的,它是protobuf编码,但到目前为止,我所有的尝试解码它失败了。

  2. 即使我找到一种方法来解码它,由于数据直接显示在shell中实时,我不知道如何将其实时保存到数据库中。

理想情况下,应该存在一种平台/语言,它可以读取mqtt消息,可以解码它们,然后在它们到达时将它们插入数据库。

任何帮助/见解将不胜感激。谢谢。

简单,不要使用-F(但同时查看手册页中的CC_4选项和Output Format部分)

理想情况下,应该存在一种可以读取mqtt消息的平台/语言,可以解码它们,然后在它们到达时将它们插入数据库。

有很多,你只需要选择一个,然后试一试。解决这个问题的正确方法是使用许多MQTT客户机库中的一种,并为您选择的任何语言编写一个匹配的protobuf库,并编写自己的客户机,该客户机具有正确的protobuf模式,以便直接从字节数组/缓冲区解码数据,MQTT客户机库将为每个到达的订阅消息提供字节数组/缓冲区。

(不,我们不能推荐MQTT/Protobuf库,因为我们不知道你熟悉什么语言,也不知道你的项目可能有什么其他限制,要求这样的建议显然与Stack Overflow的主题无关。)但是,如果你对脚本或编译语言不熟练或不自信,你可能想看看像Node-RED这样的低代码平台。

最新更新