gpt4 book ai didi

python - 我可以使用 Django Channels 实时显示 MQTT 消息吗?

转载 作者:太空狗 更新时间:2023-10-29 21:54:37 26 4
gpt4 key购买 nike

我的目标是设置 Django 应用程序,从代理检索 MQTT 消息。 (例如使用 Paho MQTT Client )。

在我看来,传入消息的异步获取非常适合新的 Django Channels。 .因为这将提供一个事件驱动的设置。

我的问题是:Django Channels 真的可以成为桥接 MQTT 消息的工具吗?如果是这样:我该如何设置?

最佳答案

我已经实现了 very simple interface between MQTT broker and ASGI .它仍处于实验阶段并且有一些限制,但您可以使用它来获取在 MQTT 代理中发布的消息(或使用代码作为示例)。

运行 MQTT 代理:

$ systemctl start mosquitto

运行MQTT-ASGI接口(interface)(类似于daphne)

$ asgimqtt my_django_project.asgi:channels_layer

my_django_project/routing.py中定义一个路由

from channels import route

from my_django_app.consumers import on_mqtt_message

channels_routing = [
route("mqtt.sub", on_mqtt_message),
]

my_django_app/consumers.py

中实现消费者(例如将 MQTT 消息存储在数据库中)
from .models import MqttMessage

def on_mqtt_message(message):
# do something with the message
MqttMessage(topic=message["topic"],
payload=message["payload"],
qos=message["qos",
host=message["host"],
port=message["port"]).save()

关于python - 我可以使用 Django Channels 实时显示 MQTT 消息吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37046605/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com