在mqtt消息中发送元数据

时间:2018-05-02 09:15:49

标签: python mqtt mosquitto

我第一次使用mqtt来传输一些二进制文件,到目前为止,我没有使用像bellow这样的代码传输它的问题

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本身?我该怎么办?

1 个答案:

答案 0 :(得分:1)

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

您如何构建该结构取决于您自己。有两种选择:

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

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