MQTT,是IBM推出的一种针对移动终端设备的基于TCP/IP的发布/预订协议,可以连接大量的远程传感器和控制设备:
[*]轻量级的消息订阅和发布(publish/subscribe)协议
[*]建立在TCP/IP协议之上
IoT,internet of things,物联网,MQTT在这方面应用较多。MQTT协议是针对如下情况设计的:
[*]M2M(Machine to Machine) communication,机器端到端通信,比如传感器之间的数据通讯
[*]因为是Machine to Machine,需要考虑:
[*]Machine,或者叫设备,比如温度传感器,硬件能力很弱,协议要考虑尽量小的资源消耗,比如计算能力和存储等
[*]M2M可能是无线连接,网络不稳定,带宽也比较小
MQTT协议的架构,用一个示例说明。比如有1个温度传感器(1个Machine),2个小的显示屏(2个Machine),显示屏要显示温度传感器的温度值。显示器需要先通过MQTT协议subscribe(订阅)一个比如叫temperature的topic(主题):

当温度传感器publish(发布)温度数据,显示器就可以收到了:

注:以上两张图,取自
MQTT and CoAP, IoT Protocols协议里还有2个主要的角色:
[*]client,客户端
[*]broker,服务器端
它们是通过TCP/IP协议连接的。因为MQTT是协议,所以不能拿来直接用的,就好比HTTP协议一样。需要找实现这个协议的库或者服务器来运行。MQTT的官网见:
http://mqtt.org/。其中
http://mqtt.org/software里面提供了官方推荐的各种服务器和客户端使用的各种语言版本的API。
- 716716-20160107105839356-1245859439.png
- 716716-20160107105925950-1172850345.png