Python中使用MQTT传输数据
2022-03-17 本文已影响0人
LabVIEW_Python
MQTT的基础概念
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。
MQTT是一个基于客户端-服务器的消息发布/订阅传输协议,协议中有三种身份,如下图所示:
- 发布者(Publish),客户端,消息发布者可以同时是订阅者
- 代理(Broker),服务器端
- 订阅者(Subscribe)客户端
MQTT传输的消息分为:主题(Topic)和负载(payload)两部分:
- Topic,可以理解为消息的类型,订阅者订阅(Subscribe)后,就会收到该主题的消息内容(payload);
- Payload,可以理解为消息的内容,是指订阅者具体要使用的内容。
更多信息参考《MQTT topic与payload的设计讨论》
MQTT的Python实战
https://mqtt.org/software/ 里面有关于MQTT的工具和软件
第一步:安装Mosquitto Broker代理服务器,这是由MQTT协议创始人之一的Andy Stanford-Clark开发的,下载链接:http://mosquitto.org/download/。 下载安装后,需要在Services里面启动Mosquitto Broker服务,Mosquitto服务默认占用1883端口。
配置文件C:\Program Files\mosquitto\mosquitto.conf 文件中
- allow_anonymous true
- port 1883
在Ubuntu20.04上创建Mosquitto服务器端,可以支持跨机器访问
Ubuntu20.04的服务端 win10上的客户端
第二步:使用MQTT客户端Eclipse Paho进行测试,https://www.eclipse.org/paho/index.php?page=components/tool/index.php,Windows安装包,下载完毕,解压缩后可以直接使用。注意软件运行需要JAVA环境。 Paho MQTT Utility Paho MQTT Utility 测试结果
注意 Windows10上构架的服务器端,经测试不支持跨机器访问--待解决
第三步:使用Python paho API函数创建客户端