在django中如何使用mqtt的方法-mile米乐体育

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

安装mqtt

python环境下安装mqtt也很简单,需要注意的就是不要输错命令在python3环境下安装python 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的方法”这篇文章对大家有帮助,同时也希望大家多多支持恰卡编程网,关注恰卡编程网行业资讯频道,更多相关知识等着你来学习!

展开全文
内容来源于互联网和用户投稿,文章中一旦含有米乐app官网登录的联系方式务必识别真假,本站仅做信息展示不承担任何相关责任,如有侵权或涉及法律问题请联系米乐app官网登录删除

最新文章

网站地图