Я использую этот скрипт python для реализации базового абонента Paho (MQTT), но при определенных обстоятельствах он не вызывает on_connect.Клиент Paho (MQTT) не может подключиться
Я попытался следующие, все с точно таким же кодом:
- Запуск в пи Raspbery, брокер на настольном ПК (Ubuntu). Работы.
- Запуск в ПК (Ubuntu), брокер на том же ПК. Не работает.
- Запуск в ПК (Ubuntu), брокер на другой ПК (Ubuntu). Не работает.
- Запуск на ПК (Ubuntu), broker.hivemq.com в качестве брокера. Работы.
- Запуск на ПК (Ubuntu), broker.hivemq.com (это IP) в качестве брокера. Работы.
я обычно делаю:
- mosquitto_sub/паб в терминале во всех предыдущих комбинациях. Работы.
- Официальный C++ paho wrapper во всех предыдущих комбинациях. Работы.
Также пробовал все методы настройки, перечисленные на официальном сайте. Таким образом, библиотека paho python, похоже, не ладит с моим местным брокером, если я не запустил его из моей малины. Но использование одного и того же брокера хорошо работает с библиотекой paho C++ и при использовании MQTT с терминала. Какие-нибудь идеи о том, что может произойти?
import paho.mqtt.client as mqtt
def on_connect(mqtt_client, obj, flags, rc):
mqtt_client.subscribe("test")
print "on_connect"
def on_message(mqtt_client, obj, msg):
print "on_message"
mqtt_client = mqtt.Client()
mqtt_client.on_connect = on_connect
mqtt_client.on_message = on_message
mqtt_client.connect("127.0.0.1",1883)
mqtt_client.loop_forever()
Просто проверяя, когда вы говорите точно такой же код, вы меняете ip-адрес в вызове функции 'mqtt_client.connect' по мере необходимости – hardillb
Да, я меняю его, когда необходимо. Это не должно быть так. –