我正在使用 python-mosquitto 订阅支持文件类型上传的 MQTT 代理。从命令行上的 Mosquitto 使用 -f 标志时,我可以很好地使用它。但是,我不知道如何使用 client.publish(topic, payload) 在我的 python 脚本中指定要发布的文件。
TypeError: payload must be a string, bytearray, int, float or None.
当我尝试向它抛出一些奇怪的东西时,Python mosquitto 给了我错误。我已经在本地目录中存储了一个文件,我想将其指定为发布的有效负载。
我对 MQTT 有经验,但我的 python 很生锈,我假设我需要在这里做某种类型的文件流功能,但不知道该怎么做。
我想在这里指定图像:mqttc.publish("/v3/device/file", NEED_TO_SPECIFY_HERE)
我尝试通过以下方式打开图像:
f = open("/home/pi/mosq/imagecap/imagefile.jpg", "rb")
imagebin = f.read()
mqttc.publish("/v3/device/file", imagebin)
但这没有用,也没有mqttc.publish("/v3/device/file", bytearray(open('/tmp/test.png', 'r').read()))
client.publish 不会引发错误,但代理没有正确接收文件。有任何想法吗?
谢谢!!