精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

How to use MQTT in Flask

原創 精選
Techplur
This article mainly introduces how to use MQTT in the Flask project, and implement the connection, subscription, messaging, unsubscribing and other functions between the ??MQTT client?? and ??MQTT bro

??Flask?? is a lightweight Web application framework written with Python, which is called "micro-framework" because it uses a simple core for extension of other features, such as: ORM, form validation tools, file upload, various open authentication techniques, etc.

??MQTT?? is a lightweight Internet of Things (IoT) message transmission protocol based on publish/subscribe mode. It can provide a real-time and reliable message service for networked devices with very less code and smaller bandwidth. It is widely used in IoT, mobile Internet, intelligent hardware, IoV, power and energy industries, etc.

This article mainly introduces how to use MQTT in the Flask project, and implement the connection, subscription, messaging, unsubscribing and other functions between the ??MQTT client??? and ??MQTT broker??.

We will use the ??Flask-MQTT??? client library, which is a Flask extension and can be regarded as a decorator of ??paho-mqtt?? to simplify the MQTT integration in Flask applications.


Project Initialization

This project is developed and tested with Python 3.8, and users may use the following commands to verify the version of Python.

$ python3 --version
Python 3.8.2

Use Pip to install the Flask-MQTT library.

pip3 install flask-mqtt

Use Flask-MQTT

We will adopt the ??Free public MQTT broker??? provided by EMQ, which is created on the basis of ??MQTT cloud service - EMQX Cloud??. The following is the server access information:

  • Broker:??broker.emqx.io??
  • TCP Port: 1883
  • Websocket Port: 8083


Import Flask-MQTT

Import the Flask library and Flask-MQTT extension, and create the Flask application.

from flask import Flask, request, jsonify
from flask_mqtt import Mqtt

app = Flask(__name__)

Configure Flask-MQTT extension

app.config['MQTT_BROKER_URL'] = 'broker.emqx.io'
app.config['MQTT_BROKER_PORT'] = 1883
app.config['MQTT_USERNAME'] = '' # Set this item when you need to verify username and password
app.config['MQTT_PASSWORD'] = '' # Set this item when you need to verify username and password
app.config['MQTT_KEEPALIVE'] = 5 # Set KeepAlive time in seconds
app.config['MQTT_TLS_ENABLED'] = False # If your server supports TLS, set it True
topic = '/flask/mqtt'

mqtt_client = Mqtt(app)

For complete configuration items, please refer to ??Flask-MQTT configuration document??.


Write connect callback function

We can handle successful or failed MQTT connections in this callback function, and this example will subscribe to the ??/flask/mqtt?? topic after a successful connection.

@mqtt_client.on_connect()
def handle_connect(client, userdata, flags, rc):
if rc == 0:
print('Connected successfully')
mqtt_client.subscribe(topic) # subscribe topic
else:
print('Bad connection. Code:', rc)

Write message callback function

This function will print the messages received by the ??/flask/mqtt?? topic.

@mqtt_client.on_message()
def handle_mqtt_message(client, userdata, message):
data = dict(
topic=message.topic,
payload=message.payload.decode()
)
print('Received message on topic: {topic} with payload: {payload}'.format(**data))

Create message publish API

We create a simple POST API to publish the MQTT messages.

In practical case, the API may need some more complicated business logic processing.

@app.route('/publish', methods=['POST'])
def publish_message():
request_data = request.get_json()
publish_result = mqtt_client.publish(request_data['topic'], request_data['msg'])
return jsonify({'code': publish_result[0]})

Run Flask application

When the Flask application is started, the MQTT client will connect to the server and subscribe to the topic ??/flask/mqtt??.

if __name__ == '__main__':
app.run(host='127.0.0.1', port=5000)

Test

Now, we use the ??MQTT client - MQTT X?? to connect, subscribe, and publish tests.


Receive message

  1. Create a connection in MQTT X and connect to the MQTT server.

  1. Publish ??Hello from MQTT X??? to the ??/flask/mqtt?? topic in MQTT X.

  1. We will see the message sent by MQTT X in the Flask running window.
    Flask receive MQTT message


Publish message

  1. Subscribe to the ??/flask/mqtt?? topic in MQTT X.

MQTT X subscribe

  1. Use Postman to call the ??/publish??? API: Send the message ??Hello from Flask??? to the ??/flask/mqtt??? topic.
    Postman test
  2. We can see the message sent from Flask in MQTT X.


Complete code

from flask import Flask, request, jsonify
from flask_mqtt import Mqtt

app = Flask(__name__)

app.config['MQTT_BROKER_URL'] = 'broker.emqx.io'
app.config['MQTT_BROKER_PORT'] = 1883
app.config['MQTT_USERNAME'] = '' # Set this item when you need to verify username and password
app.config['MQTT_PASSWORD'] = '' # Set this item when you need to verify username and password
app.config['MQTT_KEEPALIVE'] = 5 # Set KeepAlive time in seconds
app.config['MQTT_TLS_ENABLED'] = False # If your broker supports TLS, set it True
topic = '/flask/mqtt'

mqtt_client = Mqtt(app)


@mqtt_client.on_connect()
def handle_connect(client, userdata, flags, rc):
if rc == 0:
print('Connected successfully')
mqtt_client.subscribe(topic) # subscribe topic
else:
print('Bad connection. Code:', rc)


@mqtt_client.on_message()
def handle_mqtt_message(client, userdata, message):
data = dict(
topic=message.topic,
payload=message.payload.decode()
)
print('Received message on topic: {topic} with payload: {payload}'.format(**data))


@app.route('/publish', methods=['POST'])
def publish_message():
request_data = request.get_json()
publish_result = mqtt_client.publish(request_data['topic'], request_data['msg'])
return jsonify({'code': publish_result[0]})

if __name__ == '__main__':
app.run(host='127.0.0.1', port=5000)

Limitations

Flask-MQTT is currently not suitable for the use with multiple worker instances. So if you use a WSGI server like gevent or gunicorn make sure you only have one worker instance.


Summary

So far, we have completed a simple MQTT client using Flask-MQTT and can subscribe and publish messages in the Flask application.

責任編輯:龐桂玉 來源: 51CTO
相關推薦

2016-11-08 10:24:37

FlaskPython插件

2022-08-30 21:47:03

MQTT ProtoOthers

2018-08-17 06:13:16

物聯網協議MQTTMQTT-SN

2022-09-26 11:30:40

MQTT協議客戶端協議

2023-08-25 09:17:38

2020-11-18 11:36:35

鴻蒙系統

2020-12-07 12:47:22

MQTT鴻蒙hi3861

2021-03-15 08:40:42

Vue組件函數

2016-08-29 17:28:53

JavascriptHtmlThis

2020-11-17 08:59:28

MQTT

2017-02-15 09:25:36

iOS開發MQTT

2020-07-04 10:41:32

MQTTSSE網絡協議

2021-08-19 07:25:02

數據庫Flask插件

2015-06-23 16:36:11

Web性能優化

2015-06-29 14:03:07

2010-07-23 15:17:43

Perl use

2015-08-17 10:35:56

Web性能優化

2015-06-03 10:14:20

2022-08-31 15:07:27

Node-REDMQTTOthers

2021-08-04 10:22:27

鴻蒙HarmonyOS應用
點贊
收藏

51CTO技術棧公眾號

99久久精品国产一区| 欧美淫片网站| 欧美色偷偷大香| 亚洲第一在线综合在线| a片在线免费观看| 亚洲男女av一区二区| 精品国产不卡一区二区三区| 无码专区aaaaaa免费视频| 特级丰满少妇一级aaaa爱毛片| 亚洲久久视频| 日韩在线视频免费观看高清中文| 免费观看一区二区三区| 涩涩涩在线视频| 中文一区二区在线观看| 成人黄色av网| 91看片在线播放| 四季av一区二区三区免费观看| 欧美成人aa大片| 国产97色在线 | 日韩| 国产一二区在线| 91玉足脚交白嫩脚丫在线播放| 国产日本欧美视频| 激情五月色婷婷| 亚洲国产一区二区在线观看 | 久久久久国色av免费看影院| 91久久在线视频| 视频一区二区三区四区五区| 91精品啪在线观看国产81旧版| 精品亚洲一区二区三区在线播放| 老司机久久精品| 亚洲最大网站| 亚洲午夜成aⅴ人片| 一级二级三级欧美| 黄色影院在线播放| 成人免费高清在线观看| 国产色综合天天综合网| 亚洲欧美综合自拍| 亚洲国产精品第一区二区三区| 久久久av网站| 国产精品综合激情| 亚洲第一第二区| 久久夜色精品| 91国产视频在线| 久久久夜色精品| 99久久婷婷这里只有精品| 亚洲人a成www在线影院| 在线观看免费视频黄| 日韩成人在线看| 91精品国产91久久久久久一区二区| 亚洲中文字幕久久精品无码喷水| www.com.cn成人| 午夜不卡av在线| 成人在线视频一区二区三区| 免费av在线| ...av二区三区久久精品| 欧美色欧美亚洲另类七区| 天堂在线资源8| www.日韩av| 狠狠色狠狠色综合人人| 欧美天堂在线视频| 成人在线综合网| 福利视频一区二区三区| 亚洲精品国产精品国| 国产激情精品久久久第一区二区| 91影视免费在线观看| 国产精品永久久久久久久久久| 经典三级在线一区| 亚洲护士老师的毛茸茸最新章节| 国产亚洲综合久久| 在线观看国产免费视频| 久草视频免费播放| 日本不卡不卡| 国产精品超碰97尤物18| 一区二区免费在线观看| 国产福利视频在线| 一区二区三区成人在线视频| 免费一级淫片aaa片毛片a级| 福利小视频在线| 精品久久久视频| 日本www高清视频| 成人一区视频| 欧美一区二区三区四区在线观看| wwwww在线观看| 欧美a一欧美| 中文欧美日本在线资源| 婷婷伊人五月天| 欧美日韩视频| **欧美日韩vr在线| 国产精品欧美综合| 国产一区啦啦啦在线观看| 成人免费在线一区二区三区| 神马一区二区三区| 欧美极品美女视频| 福利在线一区二区| 性欧美hd调教| 日韩欧美中文一区二区| 久久国产精品无码一级毛片| 久久激情电影| 欧美成年人在线观看| 欧美精品亚洲精品日韩精品| 蜜臀av一区二区| 91久久精品一区二区别| 天堂中文在线视频| 亚洲视频每日更新| www.浪潮av.com| www.欧美| 亚洲亚裔videos黑人hd| 久久久美女视频| 日本成人在线一区| 国精产品99永久一区一区| 69视频在线观看| 国产一区二区伦理| 国产日韩欧美一区二区| 2021av在线| 亚洲第一精品在线| 奇米影视四色在线| 欧美三级午夜理伦三级小说| 色婷婷**av毛片一区| 国产精品xxxx喷水欧美| 韩国视频一区二区| 欧美日韩精品免费观看| av毛片在线免费看| 欧美性受极品xxxx喷水| 国模私拍在线观看| 亚洲成av人片一区二区密柚| 国产ts人妖一区二区三区| 性猛交富婆╳xxx乱大交天津| 国产欧美一区二区三区在线看蜜臀| 国产aaa免费视频| 综合久久伊人| 在线看日韩av| 五月婷婷亚洲综合| 不卡的av电影在线观看| 免费国产成人看片在线| 国产69精品久久久久9999人| 亚洲人精选亚洲人成在线| 日韩av在线播| 国产成人精品亚洲午夜麻豆| 午夜啪啪免费视频| 99热播精品免费| 国产亚洲福利一区| 蜜臀精品一区二区三区| av影院午夜一区| www成人免费| 香蕉大人久久国产成人av| 久久久999国产| 国产又大又粗又长| 国产精品乱码一区二区三区软件| 亚洲一区二区三区四区五区xx| 羞羞答答一区二区| 茄子视频成人在线| 你懂得在线网址| 色综合久久中文字幕综合网| 中国极品少妇videossexhd| 合欧美一区二区三区| 97超碰人人模人人爽人人看| 91cn在线观看| 欧美一区二区国产| 免费一级肉体全黄毛片| 国产69精品一区二区亚洲孕妇| 国产美女作爱全过程免费视频| 欧美激情精品| 国产69精品久久久久9| 刘亦菲久久免费一区二区| 亚洲成人久久影院| 国产精品无码网站| 亚洲免费网址| 神马影院我不卡| 欧美成人家庭影院| 欧美成人一二三| 久久精品视频91| 欧美久久久久久久久久久久久久| av一区和二区| 高清乱码免费看污| 97精品电影院| 黑森林福利视频导航| 激情综合网五月| 国产精品av电影| 国产寡妇亲子伦一区二区三区四区| 亚洲免费福利一区| 日韩美女视频中文字幕| h视频在线播放| 欧美一区二区在线免费播放 | 中文字幕日日夜夜| 国产亚洲综合精品| 欧美三级华人主播| 96视频在线观看欧美| 欧美裸体男粗大视频在线观看| 日本激情一区二区| 日韩欧美一区二区三区| 在线观看免费黄色网址| 国产一区二三区| 男人天堂网视频| 亚洲经典一区| 快播日韩欧美| 2019中文亚洲字幕| 性欧美xxxx交| 女女色综合影院| 精品日韩99亚洲| 中文字幕精品无| 亚洲乱码一区二区三区在线观看| a级在线观看视频| 黄一区二区三区| 免费高清在线观看免费| 欧美成人首页| 欧美久久久久久一卡四| 日本亚洲视频| 国产精品日韩一区| 老牛影视精品| 欧美精品免费在线观看| 久青青在线观看视频国产| 日韩欧美亚洲国产另类| wwwwww在线观看| 婷婷夜色潮精品综合在线| 欧美一级特黄高清视频| 久久女同精品一区二区| 在线观看欧美一区二区| 免费成人av在线| 春日野结衣av| 激情欧美日韩| 91成人在线视频观看| 久久成人av| 国产区二精品视| 欧美.com| 国产日韩在线免费| 吉吉日韩欧美| 91禁外国网站| 久久大胆人体| 久久国产精品首页| 91免费在线| 一本色道久久88亚洲综合88| 天天摸天天碰天天爽天天弄| 日韩欧美视频一区| 亚洲一区精品在线观看| 欧美在线观看18| 免费看毛片网站| 黑人精品xxx一区| 日韩免费视频网站| 亚洲国产视频一区二区| 黄视频网站免费看| 国产精品久久午夜夜伦鲁鲁| 欧美 日韩 国产 成人 在线观看| www.欧美.com| 伊人网综合视频| www.99精品| 性囗交免费视频观看| 成人性视频免费网站| 少妇极品熟妇人妻无码| 国产91在线|亚洲| 日韩黄色一区二区| 国产99久久久国产精品潘金网站| 麻豆网站免费观看| 国产自产v一区二区三区c| 国产九九在线观看| 美女久久久精品| 蜜臀av免费观看| 老司机免费视频一区二区| 天天操,天天操| 国精产品一区一区三区mba视频| www.se五月| 国产乱淫av一区二区三区| 91精品视频国产| 国产传媒日韩欧美成人| zjzjzjzjzj亚洲女人| a在线欧美一区| 国精产品一区一区三区免费视频| 国产视频一区在线播放| 国产传媒在线看| **网站欧美大片在线观看| 欧美成人三级在线观看| 亚洲大片在线观看| 婷婷激情五月网| 欧美性xxxxx极品少妇| 亚洲一线在线观看| 日韩你懂的在线播放| 亚洲 欧美 自拍偷拍| 亚洲色图五月天| 香蕉视频在线免费看| 久色乳综合思思在线视频| av日韩中文| 国产精品视频导航| 警花av一区二区三区| 精品蜜桃一区二区三区| 成人婷婷网色偷偷亚洲男人的天堂| 在线一区高清| 一区在线免费| 午夜视频在线瓜伦| 国产美女娇喘av呻吟久久| 一起草在线视频| 国产精品美女久久久久久| 清纯粉嫩极品夜夜嗨av| 欧美日韩国产麻豆| 一级特黄aaa大片| 亚洲精品电影在线| 天天综合视频在线观看| 国模gogo一区二区大胆私拍| 天天综合网站| 国产精品乱码| 欧美大黑bbbbbbbbb在线| 天天夜碰日日摸日日澡性色av| 日本中文字幕一区二区视频 | 亚洲网站三级| 狠狠爱一区二区三区| 91精品99| 人人爽人人av| 成人免费视频一区| 激情高潮到大叫狂喷水| 亚洲国产综合视频在线观看| 91精品国自产| 亚洲午夜精品久久久久久久久久久久 | 秋霞午夜av一区二区三区| 国产精品嫩草69影院| 中文字幕乱码日本亚洲一区二区| 国产一级生活片| 在线播放欧美女士性生活| 你懂的在线视频| 91国内精品久久| 2020最新国产精品| 在线码字幕一区| 日韩国产在线观看一区| 你懂得在线视频| 亚洲综合免费观看高清在线观看| 亚洲天堂男人网| 亚洲天堂2020| 咪咪网在线视频| 国产欧美一区二区在线播放| 欧美粗暴jizz性欧美20| 91亚洲免费视频| 国产人成亚洲第一网站在线播放| 欧美成人aaaaⅴ片在线看| 欧美一区二区视频在线观看| av网页在线| 国产精品久久久久久网站| 欧美一区二区三区红桃小说| 成人在线国产视频| 国产成人av一区二区三区在线观看| 肉色超薄丝袜脚交69xx图片| 欧美日韩免费视频| 国产一级片在线| 国产精品第一区| 国产亚洲精品美女久久久久久久久久| www黄色日本| 91在线观看高清| 日韩久久中文字幕| 亚洲天堂av在线播放| 欧美大片高清| 日韩欧美一区二区三区四区| 久久不射2019中文字幕| 日韩在线免费观看av| 色999日韩国产欧美一区二区| 五月婷婷六月丁香综合| 午夜精品久久久久久久99黑人| 成人在线超碰| 久久久久久www| 国产成人免费高清| 日韩免费黄色片| 精品在线欧美视频| 午夜日韩成人影院| 亚洲 国产 日韩 综合一区| 蜜桃精品视频在线| 精品国产国产综合精品| 日韩一区二区三区四区| 不卡av免费观看| 久久人人97超碰人人澡爱香蕉| 久久精品亚洲| 特级西西人体高清大胆| 91精品国产综合久久蜜臀| 中文在线手机av| 国产免费一区二区| 久久精品二区三区| 性爱在线免费视频| 日韩精品中文字幕在线一区| 成年男女免费视频网站不卡| 欧美日韩亚洲综合一区二区三区激情在线 | 国产精品第六页| www.国产一区| 99精品中文字幕在线不卡| 女人喷潮完整视频| 中文字幕乱码日本亚洲一区二区| 国产视频手机在线观看| 欧美精品video| 精品久久久久中文字幕小说| 日本77777| 五月激情综合网| 丁香婷婷在线| 国产91一区二区三区| 丝袜美腿亚洲一区二区图片| 男人av资源站| 日韩av在线免费观看| 成人国产一区| 国产精品入口芒果| 中文字幕乱码亚洲精品一区| 成人午夜视频一区二区播放| 国产精品成人一区| 午夜亚洲福利| 中文字幕 自拍| 日韩精品一区二区三区在线| 日韩精品99| 91黄色在线看| 国产精品久久久久一区二区三区共 |