精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

国产福利一区二区三区视频在线| 一区二区三区韩国免费中文网站| 亚洲久本草在线中文字幕| 成人三级在线| 成年人视频免费| 亚洲一级淫片| 亚洲男人天堂网站| 免费不卡av网站| 欧美大胆成人| 亚洲欧美日韩国产手机在线| 久久精品国产精品青草色艺 | 国产手机在线观看| 亚洲欧美在线人成swag| 精品日韩中文字幕| 六月婷婷激情网| 国产在线三区| 成人小视频免费在线观看| 国产精品毛片a∨一区二区三区|国| 日韩一区二区三区四区在线| 黑人操亚洲人| 亚洲精品福利在线| 国模大尺度视频| 国产成人精选| 色婷婷亚洲综合| 青青草国产免费| 毛片av在线| 欧美激情中文不卡| 久久久国产精品一区二区三区| 国产三级按摩推拿按摩| 日本不卡视频在线| 欧美一级电影在线| 精品在线视频观看| 婷婷中文字幕一区| 中文字幕亚洲欧美一区二区三区 | 国产精品美女久久久久aⅴ国产馆| 国产一区再线| 亚洲精品视频网| 国产老妇另类xxxxx| 国产精品男女猛烈高潮激情| 亚洲精品中文字幕乱码三区91| 亚洲大胆av| 久久久欧美精品| 免费视频网站www| 伊人成综合网| 久久国产精品影视| 欧美成人精品欧美一级私黄| 91日韩免费| 日韩一区在线视频| 日韩欧美视频免费观看| 欧美**字幕| 亚洲一区第一页| 欧美人与性囗牲恔配| 蜜桃国内精品久久久久软件9| 亚洲第一在线视频| 天天躁日日躁狠狠躁av麻豆男男| 91成人短视频| 亚洲精品国产综合久久| 精品人妻一区二区三区日产乱码卜| 欧美成人一区在线观看| 日韩精品高清在线观看| 爱爱免费小视频| 精品一区亚洲| 日韩在线精品一区| 国产一区二区精彩视频| 国产精品a级| 97色伦亚洲国产| 天堂网免费视频| 日韩成人一级片| 国产专区欧美专区| www.亚洲黄色| 不卡一区二区中文字幕| 精品欧美一区二区久久久伦| 黄色美女网站在线观看| 国产精品久久久久久久久免费丝袜 | 免费成人蒂法网站| 欧美精品系列| 欧美成人精品在线| 五月天综合激情| 日本不卡在线视频| 97自拍视频| 香港一级纯黄大片| 国产精品日韩成人| 黄网站色视频免费观看| 久久久男人天堂| 精品视频在线免费| 性感美女一区二区三区| 一本色道久久综合亚洲精品酒店 | 欧美日韩在线高清| 免费a在线看| 香蕉久久一区二区不卡无毒影院| 红桃av在线播放| 在线高清欧美| 日韩黄在线观看| 黄色录像免费观看| 在线日本高清免费不卡| 国产精品美女www| 性生活免费网站| 久久久久久夜精品精品免费| 特级黄色录像片| 欧美日韩视频免费观看| 日韩欧美电影一二三| 无码人妻精品一区二区中文| 一级欧洲+日本+国产| 欧美在线免费视频| av加勒比在线| 中文字幕欧美激情一区| 人妻少妇精品久久| 日韩av黄色| 精品调教chinesegay| 看片网站在线观看| 人妖欧美一区二区| 久99久视频| 午夜影院免费在线| 欧美日韩卡一卡二| xxx在线播放| 国产一区二区中文| 成人性生交大片免费看视频直播| 欧美伦理影视网| 亚洲第一成人在线| 91人妻一区二区三区| 成人中文视频| 国产精品27p| 手机看片福利永久| 亚洲最新在线观看| 91aaa精品| 欧美xxav| 国产精品日韩在线一区| 国产一区二区影视| 岛国精品视频在线播放| 日本精品一二三区| 在线中文一区| 91视频免费网站| 五月婷婷在线视频| 欧美性欧美巨大黑白大战| 少妇饥渴放荡91麻豆| 日韩一级在线| 国产伦精品一区二区三区免费视频 | 国产精品久久二区二区| 无人在线观看的免费高清视频 | 久久免费资源| 尤物九九久久国产精品的特点| 亚洲男人的天堂在线视频| 99热这里都是精品| 可以在线看的av网站| 成人高潮a毛片免费观看网站| 久久99热精品这里久久精品| 国产情侣av在线| 亚洲欧美色一区| 亚欧美一区二区三区| 91精品国产自产在线观看永久∴| 成人妇女免费播放久久久| 日本三级视频在线播放| 欧美日本一区二区| 久久久久久视频| 国产精品一区一区| 国产成人一区二区三区别| 亚洲精品一区二区三区中文字幕| 欧美富婆性猛交| 免费看国产片在线观看| 婷婷六月综合网| 91视频在线网站| 美女视频黄频大全不卡视频在线播放 | 亚洲av成人无码网天堂| 疯狂欧美牲乱大交777| 自拍偷拍亚洲天堂| 免费不卡在线视频| 日本黄xxxxxxxxx100| 白嫩白嫩国产精品| 18性欧美xxxⅹ性满足| 美丽的姑娘在线观看免费动漫| 色偷偷88欧美精品久久久| 蜜桃av免费观看| 国产激情精品久久久第一区二区| 国产婷婷一区二区三区| jizzjizz欧美69巨大| 91在线观看免费高清| 免费成人在线电影| 一本色道久久综合狠狠躁篇怎么玩| 亚洲综合精品国产一区二区三区 | 国产又粗又猛又黄视频| 日韩久久一区二区| 国产精品一区二区人妻喷水| 三级久久三级久久| 国产资源第一页| 日本午夜精品久久久| 国产欧美日韩综合精品| 欧洲中文在线| 伊人久久大香线蕉av一区二区| 国产熟女一区二区丰满| 欧美性xxxx极品hd欧美风情| 成人黄色短视频| 97精品超碰一区二区三区| 欧美特级aaa| 亚洲国产一区二区精品专区| 亚洲巨乳在线观看| 日韩成人av在线资源| 91精品在线看| 欧美xo影院| 欧美精品第一页在线播放| 国产精品久久一区二区三区不卡| 日韩欧美一区二区久久婷婷| 亚洲精品毛片一区二区三区| 亚洲一区二区三区不卡国产欧美| 日韩福利在线视频| 9人人澡人人爽人人精品| 国产精品久久久久久9999| 午夜在线精品偷拍| 国产天堂视频在线观看| 首页国产精品| 日本一区美女| 蜜臀av一区| av蓝导航精品导航| 老司机精品视频网| 日本电影亚洲天堂| 国产污视频在线播放| 久久伊人精品视频| 天堂中文а√在线| 亚洲天堂日韩电影| 网站黄在线观看| 精品国产污网站| 国产情侣在线播放| 欧美日韩免费不卡视频一区二区三区 | 污污网站在线看| 俺去了亚洲欧美日韩| 成人av一区| 亚洲欧洲国产一区| 亚洲三区在线观看无套内射| 精品国产a毛片| 精品人妻一区二区三区换脸明星| 欧美剧在线免费观看网站 | 欧美日本免费一区二区三区| 日韩黄色片网站| 一本大道久久a久久综合婷婷| 日韩毛片在线播放| 午夜久久久影院| 国产午夜视频在线播放| 亚洲午夜免费电影| 久久久久亚洲AV| 亚洲主播在线播放| 国产亚洲精品久久久久久打不开| 亚洲精品一二三四区| 黑人狂躁日本娇小| 亚洲天堂2016| 国产精品久久久精品四季影院| 18成人在线视频| 全网免费在线播放视频入口| 综合婷婷亚洲小说| 亚洲一级生活片| 亚洲欧美国产三级| 毛片a片免费观看| 亚洲va天堂va国产va久| 日本三级片在线观看| 午夜精品免费在线| 天堂网一区二区三区| 日韩欧美中文免费| 成人免费视频国产免费| 欧美日韩黄色影视| 国产区精品在线| 亚洲精品一区二区三区在线观看| 四虎永久在线观看| 亚洲午夜精品视频| 色的视频在线免费看| 美女撒尿一区二区三区| 免费在线看电影| 4444欧美成人kkkk| 99九九久久| ts人妖另类在线| 色老板在线视频一区二区| 日本一区二区在线视频| 99久久夜色精品国产亚洲96| 国产 欧美 日本| 久久精品二区三区| 欧美国产日韩另类| 成人av电影在线播放| 男生裸体视频网站| 国产精品二三区| 国产一级二级毛片| 91成人在线观看喷潮| 国产精品玖玖玖| 亚洲国产三级网| 午夜看片在线免费| 久久久久久久久久久91| 国偷自产一区二区免费视频| 91精品国产自产在线| 国产精品网在线观看| 亚洲a∨一区二区三区| 国产精品sm| 91最新在线观看| 高清在线观看日韩| 亚洲色图 激情小说| 亚洲国产wwwccc36天堂| 亚洲 国产 日韩 欧美| 日韩一区二区精品在线观看| 你懂的在线看| 久久91亚洲精品中文字幕| 欧美舌奴丨vk视频| 99re国产在线播放| 欧美日韩中字| 黄页网站大全在线观看| 国内成人自拍视频| 久久国产柳州莫菁门| 亚洲国产欧美日韩另类综合| 一级黄色大片免费| 日韩精品视频免费专区在线播放 | 亚洲 欧美 自拍偷拍| 免费av一区二区| h1515四虎成人| 精品国产乱码久久久久| 亚洲蜜桃视频| 国产v亚洲v天堂无码久久久| 岛国精品在线观看| 在线观看亚洲网站| 日本韩国精品在线| 色婷婷视频在线| 欧美猛交免费看| 亚洲国产天堂| 日本一区视频在线播放| 中文精品视频| 亚洲视频天天射| 亚洲日本va在线观看| 中文字幕在线2019| 亚洲视频欧美视频| 水蜜桃在线视频| 国产精选在线观看91| 欧美va天堂| 亚洲精品视频三区| 亚洲视频免费看| 91成品人影院| 亚洲最新av在线| 色8久久影院午夜场| 麻豆久久久9性大片| 国产欧美大片| 国产精品300页| 精品动漫一区二区三区| 内射后入在线观看一区| 久久99国产精品久久久久久久久| www.久久久.com| 亚洲小说欧美另类激情| 国产剧情一区二区| 91精品国产高清一区二区三蜜臀| 欧美日韩aaaaa| 天天影视久久综合| 91久久久久久国产精品| 亚洲国产精品久久久天堂| 黄色a级三级三级三级| 亚洲人成影院在线观看| 国产免费黄色网址| 九九热精品视频在线播放| 亚洲一二av| 成人性免费视频| 91麻豆国产香蕉久久精品| 亚洲成人av影片| 一道本无吗dⅴd在线播放一区| 黄色精品视频| 中文字幕久久综合| 国产精品一区一区三区| 亚洲一区欧美在线| 国产亚洲精品美女久久久| 国产一区精品福利| 亚洲五码在线观看视频| 成人精品视频.| 久久国产视频精品| 中文字幕久久精品| 激情五月综合婷婷| 国产精品裸体瑜伽视频| 久久综合中文字幕| 一区二区三区在线免费观看视频| 精品国产一区二区三区四区在线观看| 99热这里有精品| 可以看毛片的网址| 国产区在线观看成人精品| 国产精品欧美亚洲| 高清在线视频日韩欧美| 精品在线91| 国产性生活一级片| 狠狠操狠狠色综合网| h视频在线观看免费| 亚洲自拍av在线| 国产精品日本欧美一区二区三区| 女人裸体性做爰全过| 欧美精品一区二区三区四区| 欧美电影免费观看| 中文字幕色呦呦| 久久久精品免费观看| 国产高清在线免费| 国产成+人+综合+亚洲欧洲| 亚洲精品888| 熟女少妇一区二区三区| 91精品国产丝袜白色高跟鞋| 亚洲人成在线网站| 97av中文字幕| 国产亚洲美州欧州综合国| 精品久久国产视频| 国产精品成av人在线视午夜片| 欧美日韩调教| 国产精品一区二区亚洲| 日韩激情av在线播放| 免费观看亚洲视频大全| 久久综合久久色| 亚洲国产精品久久久男人的天堂|