简介
MQTT(讯息伫列遥测传输)是ISO 标準(ISO/IEC PRF 20922)下基于发布/订阅範式的讯息协定。它工作在TCP/IP协定族上,是为硬体性能低下的远程设备以及网路状况糟糕的情况下而设计的发布/订阅型讯息协定,为此,它需要一个讯息中间件。
IBM
公司的安迪·斯坦福-克拉克及Cirrus Link公司的阿兰·尼普于1999年撰写了该协定的
第一个
版本。
该协定的可用性取决于该协定的使用环境。IBM公司在2013年就向
结构化资讯标準促进组织
提交了 MQTT 3.1 版规範,并附有相关章程,以
确保只能对规範进行
少量更改。MQTT-SN是针对非 TCP/IP 网路上的嵌入式设备主要协定的变种,与此类似的还有ZigBee协定。
可选协定包含了高级讯息伫列协定,面向
文本的讯息传递协定,网际网路工程任务组
约束套用协定,可
扩展讯息与存在协定,
数据分发
服务,OPC UA以及web 应用程式讯息传递协定。
MQTT套用
IBM和St. Jude医疗中心通过MQTT开发了一套Merlin
系统,该系统使
用了用于家庭保健的感测器。St. Jude医疗中心设计了一个叫做Merlin@home的
心脏装置,这种无线
发射器
可以用来监控那些已经植入复律-除颤器和起搏器(两者
都是基本的感测器)的心脏
病人。
IBM称该发射器包括一个
大型触控萤幕,一个嵌入式
键盘平台,以及一个Linux
作业系统。
通过MQTT协定,目前已经扩展
出了数十个MQTT伺服器端程式,
可以通过PHP,JAVA,Python,C,C#等系统
语言来向MQTT
传送相关讯息。
此外,
国内很多
企业都广泛使用MQTT作为Android手机
客户端与伺服器端
推送讯息的协定。其中Sohu,Cmstop手机客户端中均有使用到MQTT作为讯息推送讯息。据Cmstop主要负责讯息推送的高级
研发工程师李文凯称,随着
移动网际网路的发展,MQTT由于开放
原始码,
耗电量小等特点,将
会在移动讯息推送领域
会有更多的贡献,在物联网领域,感测器与伺服器的通信,信息的收集,MQTT都可以作为考虑的
方案之一。在未来MQTT会进入到我们
生活的各各方面。
如果需要
下载MQTT伺服器端,
可以直接去MQTT官方
网站点击software进行下载MQTT协定衍
生出来的各个不同版本。
MQTT特点
MQTT协定是为大量
计算能力有限,且工作在低频宽、不
可靠的网路的远程感测器和
控制设备通讯而设计的协定,它具有以下主要的几项特性:
1、使用发布/订阅讯息
模式,提供一对多的讯息发布,
解除应用程式耦合;
“至多一次”,讯息发布完全依赖底层 TCP/IP 网路。会发生讯息
丢失或重複。
这一级别可用于如下情况,环境感测器数据,丢失一次读
记录无所谓,因为不久后
还会有
第二次传送。
“至少一次”,确保讯息到达,但讯息重複
可能会发生。
“只
有一次”,确保讯息到达一次。这
一级别可用于如下情况,在计费系统中,讯息重複或丢失会
导致不
正确的结果。
5、小型传输,开销很小(
固定长度的头部是 2 位元组),协定交换最小化,以降低网路
流量;
6、使用 Last Will 和 Testament 特性
通知有关各方客户端
异常中断的
机制。