首页 > 解决方案 > 在 mqtt 消息中发送元数据

问题描述

我第一次使用 mqtt 传输一些二进制文件,到目前为止,使用如下代码传输它没有问题

import paho.mqtt.client as paho
f=open("./file_name.csv.gz","rb")
filename= f.read()
f.close()
byteArray = bytearray(filename)
mqttc = paho.Client()
mqttc.will_set("/event/dropped", "Sorry, I seem to have died.")
mqttc.connect(*connection definition here*)
mqttc.publish("hello/world", byteArray )

但是,与文件本身一起,我想发送一些额外的信息(原始文件名、创建日期等...),我找不到任何合适的方法来使用 mqtt 传输它,有什么办法吗那还是我需要将该信息添加到消息 byteArray 本身?我该怎么做?

标签: pythonmqttmosquitto

解决方案


您需要构建自己的数据结构来保存文件及其元数据。

如何构建该结构取决于您。有几个选择是:

  • base64/uuencode 对文件进行编码并将其作为字段添加到 JSON 对象中,并将元数据保存为其他字段,然后发布 JSON 对象。

  • 构建一个 Python 地图,将文件作为字段,将其他元数据作为其他字段。然后使用pickle序列化地图。


推荐阅读