MQTT 是一个非常知名的标准协议,但是消息的有效负载结构没有标准。
我有一个 MQTT 代理,其有效负载格式如下:{"value": "ON"} 该设备使用不同格式的有效负载,例如{“ON”}
我需要一种方法来在来自设备的消息上添加“值:”。 我需要一种方法来删除来自经纪人的消息上的“值:”。
我如何操作或编辑设备中的消息以使经纪人能够理解它们? 我想我需要一个“中介经纪人”来进行这种操纵
您会推荐哪些选项?谢谢。
没有标准机制可以做到这一点。
正常的方法是使用客户端订阅原始消息主题,客户端进行转换,然后将其重新发布到终端设备订阅的新主题上。
有些库可让您实现自己的代理,其中包含挂钩,允许您在需要时动态操作消息。
虽然迟到了,但我正在写关于这个主题的学士论文,并开发了一个 Python 模块,该模块充当订阅者-发布者(使用 Paho-MQTT 库来执行此操作),并具有多线程接口来完成此操作。我还在 C++ 中编写了一个 Mosquitto 本机插件,以在代理中执行相同的操作,而不需要将数据发送到外部客户端。这一切都非常粗糙,因为我不是这样的专业程序员,有很多问题,但它有效,并且基本思想是存在的,如果有人想看一下。 另外,检查 HiveMQ,我认为他们在代理软件中实现了类似的东西。