如何在Django中使用Paho mqtt客户端?

Raja Sudhan |

我正在编写django应用程序,该应用程序应充当MQTT发布者和订阅者。

我应该在哪里启动Paho客户端并运行loop_forever()函数。

应该在wsgi.py中吗?

马克斯·波列扎耶夫(Max Polezhaev)

更新:

如果您需要Django的多个线程运行,则发布从您的Django应用程序的信息,您可以使用辅助功能从发布泛美卫生组织的模块- 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()将使您不会阻塞后台线程。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Eclipse Paho MQTT 客户端在 Java 中使用 TLS

MQTT如何从客户端创建客户端?

Paho(MQTT)客户端无法连接

如何开始使用MQTT Paho JavaScript客户端?

如何在Mosquitto MQTT中使用客户端ID?

两个paho.mqtt客户端订阅相同的客户端区域

如何在HiveMQ客户端(MQTT)中获得客户端的名称?

Android上的Eclipse Paho MQTT客户端,性能较差

Paho MQTT客户端无法正常工作

Paho MQTT JS 客户端已连接错误?

python Paho客户端MQTT:写入多个文件

在C ++函数中使用MQTT客户端指针

在python 3.7中使用paho mqtt客户端时出现问题

如何在必须在多个活动中访问的Android中实现Paho MQTT客户端

如何使用Java客户端同时发布MQTT消息?

如何确定MQTT客户端的用户ID?

使用TLS的node.js mqtt客户端

使用junit进行MQTT客户端测试

MQTT的JavaScript客户端未使用WebSockets

在 MQTT 上使用 Scapy 创建客户端

如何获取Eclipse Paho MQTT C客户端的静态库?

Eclipse Paho MQTT 客户端:如何检查现有连接?

无法使用Eclipse Paho客户端连接到MQTT代理

如何使用自签名证书连接到 Android(paho 客户端)中的 Mqtt 服务器?

Paho MQTT客户端连接可靠性(断开连接时重新连接)

PAHO MQTT Python客户端-缺少确认,保证为订户传递

Paho MQTT (C++) 客户端无法连接到 Mosquitto

Paho Python MQTT客户端成功连接,但未调用on_connect回调

Python paho mqtt 客户端不会同时发布和订阅