【发布时间】:2021-09-29 07:05:58
【问题描述】:
我想要一种将 django 与 mqtt 集成的方法,为此我想到的第一件事是使用 django-channels 和一个支持 mqtt over web sockets 的 mqtt 代理,因此我可以在代理和 django 之间直接通信-频道。
但是,我没有找到从 django 启动 websocket 客户端的方法,根据 link 这是不可能的。
由于我也开始研究任务队列,我想知道使用 paho-mqtt 启动 mqtt 客户端然后使用 celery 在单独的进程中运行它是否是一个好习惯。然后这个进程会通过 websockets 将 broker 收到的消息转发到 django 通道,这样我也可以与客户端进程通信,发布数据或在需要时停止 mqtt 客户端,所有这些都直接来自 django。
我对这个想法有点怀疑,因为我还读到了在 celery 中运行的过程不应该花费太长时间才能完成,在这种情况下,这正是我想要做的。
所以我的问题是,这是一个多么糟糕的主意?有没有其他选项可以直接将django与mqtt集成?
*注意:我不想在服务器上运行单独的进程,我希望能够从 django 启动和停止进程,以便从 web gui 完全控制 mqtt 客户端
【问题讨论】:
标签: django websocket celery mqtt django-channels