python - 在 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 本身?我该怎么做?
解决方案
您需要构建自己的数据结构来保存文件及其元数据。
如何构建该结构取决于您。有几个选择是:
base64/uuencode 对文件进行编码并将其作为字段添加到 JSON 对象中,并将元数据保存为其他字段,然后发布 JSON 对象。
构建一个 Python 地图,将文件作为字段,将其他元数据作为其他字段。然后使用pickle序列化地图。
推荐阅读
- java - 创建 ImageViewer JavaFX 时出现 FileNotFound 异常
- python - 深度 Q 学习**没有** OpenAI Gym
- excel - 无法弄清楚为什么我会收到运行时错误 9:下标超出范围错误
- python - 使用 Microsoft Power Apps 运行 Python 程序的最佳方法
- java - hazelcast 错误“找不到事务日志”
- ruby-on-rails - 如何始终在 Rails 应用程序中保存嵌套项(即使它们没有被更改)?
- c++ - 正确使用 _tcstod 并将 lpszEndChar 设置为 NULL 与否
- python - 现有系统 Python 的问题并为新 Python 安装 Anaconda - 编程新手
- google-docs-api - 有什么方法可以在谷歌文档中创建自定义元素,例如 OLE/OpenDoc 或 mediawiki?
- regex - 如何拆分第一次出现的字符