Попробуйте использовать express.static (), если вы используете Node.js.
Вам просто нужно передать имя каталога, в котором вы сохраняете свои статические активы, в промежуточное программное обеспечение express.static, чтобы начать обслуживать файлы напрямую. Например, если вы сохраняете файлы изображений, CSS и JavaScript в каталоге с именем public, вы можете сделать это, как показано ниже:
i.e. : app.use (express.static ('public'));
Этот подход разрешил мою проблему.
Спасибо,
Обновление:
Если вам нужно, чтобы Django работал в нескольких потоках, чтобы публиковать сообщения из вашего приложения Django, вы можете использовать вспомогательные функции из модуля Publish Paho - https://eclipse.org/ paho / clients / python / docs / # id17 Вам не нужно создавать экземпляр клиента mqtt и запускать цикл в этом случае. И чтобы подписаться на какую-то тему, рассмотрите возможность запуска mqtt-клиента как автономного скрипта и импорта необходимых модулей вашего Django-приложения (и не забудьте настроить среду Django в скрипте).
Ответ ниже хорош только при запуске Django в одном потоке, который не является обычным в работе.
Создайте mqtt.py
в своей папке приложения и поместите туда все связанные коды. Например:
import paho.mqtt.client as mqtt
def on_connect(client, userdata, rc):
client.subscribe("$SYS/#")
def on_message(client, userdata, msg):
# Do something
pass
client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
client.connect("iot.eclipse.org", 1883, 60)
Не вызывайте loop_forever()
здесь!
Затем в вашем приложении __init__.py
вызывают loop_start()
:
from . import mqtt
mqtt.client.loop_start()
Использование loop_start()
вместо loop_forever()
даст вам не блокировать фоновый поток.