一、简介
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。
MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。
二、MQTT的介绍
客户端即可以订阅服务器的主题,又可以发布消息给服务器,所以客户端既可以是订阅者也可以是发布者。
客户端
使用MQTT的程序或设备。客户端总是通过网络连接到服务端吗,有以下的功能:
发布应用消息给其它相关的客户端。
订阅以请求接受相关的应用消息
取消订阅以移除接受应用消息的请求
从服务端断开连接
服务端
一个程序或设备, 作为发送消息的客户端和请求订阅的客户端之间的中介,有以下的功能
接受来自客户端的网络连接
接受客户端发布的应用消息
处理客户端的订阅和取消订阅请求
转发应用消息给符合条件的已订阅客户端
订阅 Subscription
订阅包含一个主题过滤器( Topic Filter) 和一个最大的服务质量( QoS) 等级。 订阅与单个会话( Session) 关联。 会话可以包含多于一个的订阅。 会话的每个订阅都有一个不同的主题过
滤器。
主题名 Topic Name
附加在应用消息上的一个标签, 服务端已知且与订阅匹配。 服务端发送应用消息的一个