Paho MQTT Publish и Subscribe
Имеется код:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import paho.mqtt.client as mqtt
import os
#Переменные
topic = "/home/my_room/pc"
#Переменные
def on_connect(mqttc, obj, flags, rc):
print("Connection status: " + str(rc))
def on_message(mqttc, obj, msg):
print(msg.topic + ": " + str(msg.payload))
if msg.topic == topic and msg.payload == b'0':
os.system("shutdown /s /t 1 /f")
def on_publish(mqttc, obj, mid):
print("Published: " + str(mid))
def on_subscribe(mqttc, obj, mid, granted_qos):
print("Subscribed: " + str(mid) + " " + str(granted_qos))
def on_log(mqttc, obj, level, string):
print(string)
mqttc = mqtt.Client()
mqttc.on_message = on_message
mqttc.on_connect = on_connect
mqttc.on_publish = on_publish
mqttc.on_subscribe = on_subscribe
mqttc.username_pw_set(username="stackoverflow",password="stackoverflow")
mqttc.connect("example.com", 1111, 1200)
mqttc.publish(topic, payload=1, qos=2, retain=True)
mqttc.subscribe(topic, 1)
mqttc.loop_forever()
Подразумевается, что подписка на топик будет выполнена после публикации, но происходит всё с точностью до наоборот. Прикладываю лог программы:
Connection status: 0
Subscribed: 2 (1,)
/home/my_room/pc: b'1'
Published: 1
/home/my_room/pc: b'1'
Можете объяснить, почему так происходит, и как это исправить?