MQTT简介:
随着物联网的火热,机器之间(Machine-to-Machine,M2M)的大规模沟通需要不同的模式,(Request/Response)模式不再合适,取而代之的是发布/订阅(Publish/Subscribe)模式。这就是轻量级、可扩展的MQTT(Message Queuing Telemetry Transport)优势。
运用MQTT协议,设备可以很方便地连接到物联网云服务,管理设备并处理数据,最后应用到各种业务场景;二进制协议,紧凑、占用空间小,协议头只有2个字节 ,还提供了三种消息可能性保障(Qos):0:最多一次 、1:最少一次、2:只有一次。
MQTT最大的优势是解耦了发布消息的客户(发布者)与订阅消息的客户(订阅者)之间的关系,这意味着发布者和订阅者之间并不需要直接建立联系,只要认识同一个消息代理即可。
大致模式:
MQTTfor python:(可用在线 broker:http://www.eclipse.org/paho/)
搭建环境:
安装MQTT客户端包——paho-mqtt
pipinstallpaho-mqtt
消息接收端:
import paho.mqtt.client as mqtt
client= mqtt.Client()
client.connect("iot.eclipse.org",1883, 60) #订阅频道
client.subscribe("主题")
on_message()
on_message(client, userdata, message)
当有信息被一个订阅的主题接收,则会触发该回调函数。message_callback_add() 可以为指定的主题定义多个回调函数。
· client:这个回调函数的client 实例。
· userdata:私人数据,设置在Client()或userdata_set()