Я попробовал пример проекта Flask -MQTT (https://github.com/stlehmann/Flask-MQTT) с моим местным брокером комаров. Но, к сожалению, это не работает. Подписка и публикация sh отправлены неправильно. поэтому я добавил несколько сообщений журнала:
def handle_connect(client, userdata, flags, rc):
print("CLIENT CONNECTED")
@mqtt.on_disconnect()
def handle_disconnect():
print("CLIENT DISCONNECTED")
@mqtt.on_log()
def handle_logging(client, userdata, level, buf):
print(level, buf)
16 Отправка CONNECT (u0, p0, wr0, wq0, wf0, c1, k30) client_id = b'flask_mqtt '
CLIENT DISCONNECTED
16 Получено CONNACK (0, 0)
КЛИЕНТ СОЕДИНЕН
16 Отправка CONNECT (u0, p0, wr0, wq0, wf0, c1, k30) client_id = b'flask_mqtt '
КЛИЕНТ ОТКЛЮЧЕН *
16 Получено CONNACK (0, 0)
Брокер от комаров показывает, что он отключает приложение flask, поскольку клиент уже подключен:
1580163250: Новое соединение с 127.0.0.1 на порт 1883.
1580163250: Клиент flask_mqtt уже подключен, закрытие старого соединения.
1580163250: Новый клиент, подключенный с 127.0.0.1 как flask_mqtt (p2, c1, k30).
1580163250: Сообщение не указано.
1580163250: Отправка CONNACK на flask_mqtt (0, 0)
1580163251: Новое соединение с 127.0.0.1 на порт 1883.
1580163251: Клиент flask_mqtt уже подключен, закрывает старое соединение .
1580163251: новый клиент c подключен к 127.0.0.1 как flask_mqtt (p2, c1, k30).
1580163251: не указано сообщение воли.
1580163251: отправка CONNACK в flask_mqtt (0, 0)
1580163251: ошибка сокета на клиенте flask_mqtt, отключение.
Я также протестировал простой пример клиента python .paho mqtt без flask, и он работает, как и ожидалось. я также изменил, попробовал несколько l oop запусков внутри flask -mqtt кода self.client.loop_start()
--> self.client.loop_forever()
... ничего не изменилось.
так что есть идеи, в чем проблема? я также отладил код flask -mqtt и не могу найти проблемы. (моя python версия Python 3.6.9 (по умолчанию, 7 ноября 2019 г., 10:44:02) (моя хост-система проста Linux)
может быть FLASK -MQTT lib устарел? Любая подсказка или идея ценится!