我想要一种将 django 与 mqtt 集成的方法,为此我首先想到的是使用 django-channels 和一个通过 Web 套接字支持 mqtt 的 mqtt 代理,这样我就可以在代理和 django-channels 之间直接通信。
但是,我没有找到从 django 启动 websocket 客户端的方法,并且根据此链接这是不可能的。
由于我也开始研究任务队列,我想知道使用 paho-mqtt 启动 mqtt 客户端,然后使用 celery 在单独的进程中运行它是否是一个好习惯。然后,该进程将通过 websocket 将代理收到的消息转发到 django 通道,这样我还可以与客户端进程通信,在需要时发布数据或停止 mqtt 客户端,所有这些都直接从 django 进行。
我对这个想法有点怀疑,因为我还读到在 celery 中运行的进程不应该花费太长时间才能完成,在这种情况下,这正是我想要做的。
所以我的问题是,这是一个多么糟糕的主意?还有其他选项可以直接将 django 与 mqtt 集成吗?
*注意:我不想在服务器上运行单独的进程,我希望能够从 django 启动和停止该进程,以便从 Web gui 完全控制 mqtt 客户端