Как указано в комментариях
def on_publish(client, userdata, mid):
client.disconnect()
client.stop_loop()
client = paho.Client()
client.on_connect = on_connect
client.on_publish = on_publish
client.connect(MQTT_BROKER, MQTT_PORT)
client.loop_start()
f = open("foo.jpg", "rb")
fileContent = f.read()
f.close()
byteArr = bytearray(fileContent)
client.publish("/data", byteArr)
Причина, по которой client.loop_forever()
не работает, заключается в том, что это блокирующий вызов, который никогда не возвращается, поэтому предполагается, что вы вставили его перед вызовом client.publish()
ты никогда не доберешься туда.