Skip to content
yangboz edited this page Nov 23, 2012 · 5 revisions

MQTT 简介以及适用场景用

IBM® WebSphere® MQ Telemetry Transport(简称 MQTT)是一种基于 TCP/IP 的轻量级发布 / 预订协议,用于连接大量的远程传感器和控制设备。在必须允许低带宽和不可靠的通信并且占用较少内存的设备上,专业化的应用程序就使用 MQTT 协议。用户可以编写自己的客户机以使用已发布的协议。

MQTT 产品作为 WebSphere MQ 产品的扩展,使用了 MQTT V3.1 版本的协议。它提供了一些小型客户机库,可以将这些客户机库嵌入到运行于不同设备平台上的智能设备中。使用客户机构建的应用程序使用 MQ Telemetry Transport(MQTT) 和 WebSphere MQ Telemetry 服务并借助 WebSphere MQ 来可靠地发布和预订消息。一个高级 MQTT 客户机(即设备的 WebSphere MQ Telemetry 守护程序)可以运行于多种平台上。它可以充当一个网络集中器,能够将更多的 MQTT 客户机连接至单个队列管理器。对于在网络发生短暂中断期间无法缓存消息的小型设备,它还可以为这些小型设备提供存储转发功能。

物联网,即 Internet-of-Things, 简称 IOT。它和能源、电子信息、医疗、交通、零售、物流、工业制造等行业息息相关。要实现物联网,首先需要将具备信息感知和通信能力的设备嵌入到我们关心的物品中,使其能连接到因特网或企业网络之上,实现互联互通。之后,互通的物品不仅要通过设备采集信息、实现智能的感知,更要结合一切先进的信息处理、数据挖掘等手段,与业务应用相结合,从后台到前端设备,实现智能的控制。

MQTT 结合物联网应用,它可以将各种移动设备连接至因特网和企业,降低了为智能设备构建应用程序的成本,从而为物联网应用构建连通的平台。 MQTT规范分为3个部分

  • 通用数据包格式
  • 特定数据包细则
  • 数据包传递 主题通配符使用信息在附录中

以下是MQTT v3与v3.1的不同

  • 用户姓名和密码可以在连接包中发送
  • 在CONNECK数据包中,为权限问题创建了新的返回代码
  • 客服端不接受未授权PUBLISH 或SUBSCRIBE的指令,同时即使指令没有被执行,MQTT数据流也应该完成
  • String类型完全支持UTF-8编码,替代US-ASCII 协议版本好通过CONNECT数据包发送,并保持当前版本号3。现存的MQTT v3版本服务器实现应该可以接受当前版本的客户端请求的连接,只需要它们遵循“保留长度”,并忽略特别的安全信息。
Clone this wiki locally