在Django中如何使用MQTT的方法

这篇文章主要介绍了在Django中如何使用MQTT的方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

安装MQTT

Python环境下安装MQTT也很简单,需要注意的就是不要输错命令在Python3环境下安装Python MQTT的命令是:

在Django中如何使用MQTT的方法

pip3installpaho-mqtt

使用Python MQTT

编写Python MQTT脚本代码如下:

#为了能在外部脚本中调用DjangoORM模型,必须配置脚本环境变量,将脚本注册到Django的环境变量中
importos,sys
importdjango
#第一个参数固定,第二个参数是工程名称.settings
os.environ.setdefault('DJANGO_SETTING_MODULE','my_django.settings')
django.setup()

#引入mqtt包
importpaho.mqtt.clientasmqtt
#使用独立线程运行
fromthreadingimportThread
fromapp名importmodels
importtime
importjson

#建立mqtt连接
defon_connect(client,userdata,flag,rc):
print("Connectwiththeresultcode"+str(rc))
client.subscribe('test/#',qos=2)

#接收、处理mqtt消息
defon_message(client,userdata,msg):
out=str(msg.payload.decode('utf-8'))
print(msg.topic)
print(out)
out=json.loads(out)

#收到消息后执行任务
ifmsg.topic=='test/newdata':
print(out)

#mqtt客户端启动函数
defmqttfunction():
globalclient
#使用loop_start可以避免阻塞Django进程,使用loop_forever()可能会阻塞系统进程
#client.loop_start()
#client.loop_forever()有掉线重连功能
client.loop_forever(retry_first_connection=True)

client=mqtt.Client(client_id="test",clean_session=False)

#启动函数
defmqtt_run():
client.on_connect=on_connect
client.on_message=on_message
#绑定MQTT服务器地址
broker='192.168.1.88'
#MQTT服务器的端口号
client.connect(broker,1883,62)
client.username_pw_set('user','user')
client.reconnect_delay_set(min_delay=1,max_delay=2000)
#启动
mqttthread=Thread(target=mqttfunction)
mqttthread.start()

#启动MQTT
#mqtt_run()

if__name__=="__main__":
mqtt_run()

在Django项目中启动脚本

在Django2.1下,只需要在 wsgi.py 中引入要执行的脚本文件,然后执行启动函数即可。如:

from存放MQTT脚本的模块import脚本名
#假如脚本名是:mqtt_functions
mqtt_functions.mqtt_run()

感谢你能够认真阅读完这篇文章,希望小编分享的“在Django中如何使用MQTT的方法”这篇文章对大家有帮助,同时也希望大家多多支持恰卡编程网,关注恰卡编程网行业资讯频道,更多相关知识等着你来学习!

发布于 2021-05-10 20:37:15
收藏
分享
海报
0 条评论
192
上一篇:MySQL怎么联合查询优化机制 下一篇:JavaScript怎么删除对象的某个属性
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码