如何从views [django]发布消息到mqtt ?



我正在尝试整合paho。我已经搜索过了,但是没有找到很多关于如何实现它的教程。

我试着把这段代码放入mqtt.py:

from paho.mqtt import client as mqtt_client
topic = "#topic#"
def connect_mqtt()  -> mqtt_client:
def on_connect(client, userdata, flags, rc):
if rc == 0:
print("Connected to MQTT Broker!")
else:
print("Failed to connect, return code %dn", rc)
client = mqtt_client.Client(topic)
client.username_pw_set('#username#', '#psswd#')
client.on_connect = on_connect
client.connect('####the host##', 1883)
return client

def publish(client):
msg = 'test test'
result = client.publish(topic, msg)

def run():
client = connect_mqtt()
publish(client)
client.loop_forever()

and ininitpy

from . import mqtt
client.loop_start()

,当我在视图上调用run()时,它不起作用,而runserver似乎不像是正确的方法。

谁能给我解释一下,我应该如何组织我的文件和系统来做正确的。

请帮忙将不胜感激。

如果有人想从视图函数发布消息。使用paho-mqtt

# inside views.py
# you can modify whether to publish from get/post method.
from django.http import HttpResponse
import paho.mqtt.publish as publish
def publish(request):

publish.single("your pub topic", payload="Your message", hostname="broker url", port=1883)
return HttpResponse("Published")

.

# inside urls.py
from . import views
from django.urls import path
urlpatterns = [
path("publish", views.publish, name="mqtt_publish"),
]

当你进入host/publish

时,这个将发布到主题

最新更新