导语
物联网是当前移动互联网发展的方向之一,大量的M2M应用开始涌现,也有非常多的物联网协议诞生。今天我们聊聊可以说是目前最为广泛使用的物联网应用层协议之一,MQTT(Message Queue Telemetry Transport)协议。
MQTT协议的由来
MQTT协议最早的一个版本是由IBM公司的Andy Stanford-Clark博士以及Arcom公司的Arlen Nipper在1999年共同提出。2013年IBM公司发布了MQTT v3.1版本,目前使用最多的版本是3.1.1。
MQTT是一种轻量级的基于发布和订阅的消息传输协议。类似消息传输协议还包括AMQP、STOMP、CoAP、XMPP和WAMP。MQTT协议基于TCP和IP协议。
MQTT专为存储能力和带宽受限的设备设计,因此特别适合于物联网的终端嵌入式设备中。MQTT-SN是MQTT主协议的一个变体,专门用于一些非TCP/IP的嵌入式设备中,比如Zigbee等。
MQTT-SN专为没有TCP/IP协议的嵌入式设备设计
订阅与发布
MQTT协议中有这么几个角色:订阅者(Subscriber)、发布者(Publisher)以及代理服务器(Broker)。
订阅者通过主题(Topic)指定要订阅的消息;
发布者也通过主题来发布消息;
代理服务器负责把该主题的消息推送到订阅者。
从以上描述可以看出MQTT是一个多对多的消息传输协议。可以用来实现即时通信,也可以来实现M2M通信及物联网应用。
MQTT应用的实现
Mosquitto是一款实现了 MQTT v3.1 协议的开源消息代理软件,如果要自己搭建MQTT代理服务器,可以使用这个软件。除了Mosquitto以外,HiveMQ, Apache ActiveMQ, RabbitMQ, mosca等消息总线或消息队列软件,都可以用来实现MQTT服务器。
之前的文章《物联网云平台综述》也介绍过,目前国内主流的物联网云平台都支持MQTT协议。因此将MQTT协议作为物联网应用开发的首选协议,是个不错的选择。
声明:本文转载自网络。版权归原作者所有,如有侵权请联系删除。 |