mqtt — mqtt连接模块¶
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,该协议构建于 TCP/IP 协议上,由 IBM 在1999年发布。MQTT 最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。
MQTT 是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT 协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。
Paho MQTT 是 Eclipse 实现的基于 MQTT 协议的客户端,本软件包是在 Eclipse paho-mqtt 源码包的基础上设计的一套 MQTT 客户端程序。
该组件支持以下功能:
MQTT Connect
MQTT Subscribe
MQTT Publish
可连接阿里云物联网平台
使用示例¶
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | # *_* coding: utf-8 *_*
import mqtt
# 初始化mqtt client
client = mqtt.client("haas")
# 定义subcribe的回调函数
def on_subcribe(topic,payload):
   print("on_subcribe: topic is:" + topic)
   print("on_subcribe: payload is:" + payload)
client.on_subcribe(on_subcribe)
# 设置用户名和密码
# client.username_pw_set()
# 建立mqtt连接
client.connect("100.81.153.167",1883,60)
# 订阅服务
client.subscribe("test/other/aiot",1)
# 发布服务
#client.publish("test/haas100/aiot","haas100 publish",1)
# 循环获取消息
while True:
   client.loop(1000)
client.disconnect()
 | 
- 
class mqtt.Client[源代码]¶
- Bases: - object- 初始化client类,获取mqtt client实例 - 参数
- 空 – 
- 返回
- client对象 
 - 
connect(host, port, interval)[源代码]¶
- MQTT连接请求 - 参数
- host(str) – 待连接主机 
- port(str) – 待连接端口号 
- interval(int) – 重试周期,单位为毫秒 
 
- 返回
- 0: 成功,其他: 失败 
 
 - 
publish(topic, payload, qos)[源代码]¶
- MQTT发布主题 - 参数
- topic(str) – MQTT发布的主题 
- payload(str) – MQTT发布的消息主题 
- qos(int) – 服务质量 
 
- 返回
- 0: 成功,其他: 失败