У меня проблема с кодом, и мне нужна ваша помощь с ним. Я создаю сценарий python, который имеет два экземпляра клиента mqtt (mqtt c, mqttc1) для подключения к двум брокерам (два разных IP-адреса). Первый клиентский экземпляр должен подключиться к первому посреднику и подписаться на сообщение topi c и распечатать topi c и сообщение с помощью обратного вызова on_message. Второй экземпляр клиента должен подключаться ко второму посреднику и публиковать sh ко второму посреднику каждое сообщение, полученное от первого посредника при обратном вызове on_message. Я использую библиотеку paho python, и проблема в том, что я не могу опубликовать sh во втором посреднике под командой print при обратном вызове on_message, используя второй экземпляр клиента mqttc1.publi sh (msg.topi c, msg.payload, qos = 1) или mqttc1.publi sh (MQTT_Topi c, msg.payload, qos = 1)
enter code here
# Import package
import paho.mqtt.client as mqtt
import ssl
# Define Variables
MQTT_PORT = 1883
MQTT_KEEPALIVE_INTERVAL = 45
MQTT_TOPIC = "temperature"
MQTTC_HOST = "198.555.0.9"
MQTTC1_HOST = "195.626.0.8"
# Define on connect event function
# We shall subscribe to our Topic in this function
def on_connect(mosq, obj, rc):
mqttc.subscribe(MQTT_TOPIC, 0)
# Define on_message event function.
# This function will be invoked every time,
# a new message arrives for the subscribed topic
def on_message(mosq, obj, msg):
print "Topic: " + str(msg.topic)
print "QoS: " + str(msg.qos)
print "Payload: " + str(msg.payload)
mqttc1.publish(msg.topic ,msg.payload ,qos=1)
mqttc1.publish(MQTT_Topic ,msg.payload ,qos=1)
# Initiate MQTT Client
mqttc = mqtt.Client()
mqttc1 = mqtt.Client()
# Assign event callbacks
mqttc.on_connect = on_connect
mqttc.on_message = on_message
# Connect with First MQTT Broker
mqttc.connect(MQTTC_HOST, MQTT_PORT, MQTT_KEEPALIVE_INTERVAL)
# Continue monitoring the incoming messages for subscribed topic
mqttc.loop_start()
# Connect with Second MQTT Broker
mqttc1.connect(MQTTC1_HOST, MQTT_PORT, MQTT_KEEPALIVE_INTERVAL)
# Continue monitoring the incoming messages for subscribed topic
mqttc1.loop_start()