什么是MQTT协议

  • MQTT全称叫做Message Queuing Telemetry Transport,意为消息队列遥测传输,是IBM开发的一个即时通讯协议。由于其维护一个长连接以轻量级低消耗著称,所以常用于移动端消息推送服务开发。MQTT协议是一个简单的中心辐射型系统:传感器、应用和设备之间的通信是通过中央代理端运行的数据中心服务实现的。其精简低带宽的特性使得它能够适用于很多应用,比如家庭自动化:包括供暖、通风、空调(HVAC)、照明、智能设备和安全等方面都采用了MQTT。

  • T协议。MQTT是二进制的协议,控制字段是精确到Bit级别的,单纯这一点就足以为其在物联网领域占据一席之地。 (对标的是HTTP协议)。

  • MQTT是不支持分包等机制,并不适宜一些数据包特别大的应用场景。

如何接触到MQTT协议及使用

  • MQTT协议实现方式

【20180930】Java   MQTT协议 - 图1
在MQTT协议中有三种身份:

  • 发布者(Publish)。发布者其实是客户端,可以进行发布消息;

  • 代理(Broker)。代理指的是服务器,比较有名的是eqmtt,当前,你也可以用其他成熟的框架去搭建MQTT服务;

  • 订阅者(Subscribe)。一般指的是客户端,不过,发布者同时也可以是订阅者。

MQTT客户端

一般来说,客户端可以实现一下功能:

  • 给其他客户端发布订阅的信息;

  • 订阅其他客户端发布的信息;

  • 退订和订阅主题;

  • 断开服务器连接。

MQTT服务端

MQTT服务端也称为消息代理,经常你会听到broker这个词。它可以实现一下功能:

  • 接收来自客户端的网络连接;

  • 接受客户发布的应用信息;

  • 处理来自客户端主题订阅和退订请求;

  • 向订阅的客户端转发应用程序消息。

MQTT协议中的方法

MQTT和HTTP一样,也定义了一些动作,来表示对确定资源进行操作。

  • Connect,等待于服务器建立连接;

  • Disconnect,等待客户端完成所做的工作,并与服务器断开TCP/IP会话;

  • Subscribe,主题订阅;

  • UnSubscribe,主题取消订阅;

  • Publish,发送消息。

如何抓取MQTT协议的流量

  • 123

参考资料