MQTT 协议

更新日期: 2021-05-08 阅读次数: 177 字数: 357 分类: 物联网

MQTT 的使用场景

例如典型的物联网场景,在一台联网硬件设备被扫码支付之后,需要能及时的解锁使用。最常见的应用场景就是停车场扫码缴费,自动起竿。

MQTT 介绍

MQTT(MQ Telemetry Transport,消息队列遥测传输)是近年来出现的一种新型协议,物联网领域会将其作为标准协议。该协议构建于TCP/IP协议上(同样有基于UDP的版本,叫做MQTT-SN)。MQTT原本是IBM公司开发的协议,现在则开源了,被人们不断开发着。MQTT是一种能实现一对多通信(人们称之为发布或订阅型)的协议。它由3种功能构成,分别是中介(broker)、发布者(publisher)和订阅者(subscriber)。

中介、发布者、订阅者的关系

发布者与订阅者是通过中介通信的。

  • 客户端:发布者、订阅者
  • 服务端:中介。发送服务器和设备都不需要知道彼此的地址。只要知道中介的地址,就能够实现通信

语言库的支持

  • 终端硬件:c
  • 服务端:golang

一个叫作Paho的库还公开了发布者和订阅者等客户端功能。不仅Java、JavaScript、Python配备了Paho,连C语言和C++都配备了Paho。因此,我们能够将其与设备结合起来并加以使用。

MQTT Broker 的开源实现

  • https://wivwiv.com/post/best-mqtt-broker/
  • https://github.com/eclipse/mosquitto

但是我担心自己搞安全认证过于麻烦,主要是设计到硬件开发人员的工作量,采用腾讯云、阿里云的 Broker 会不会更方便一点。

MQTT 的数据结构

  • JSON
  • XML
  • MessagePack (二进制形式)

如果仅仅是上报数据,有必要使用 MQTT 么

感觉并没有什么意义。除非是下发控制。

腾讯云接入 MQTT

https://cloud.tencent.com/document/product/634/32546

如果使用 tcp,http 长连接的方案,与 mqtt 的区别在哪里?

mqtt 与 websocket 的区别

参考

  • 图解物联网

爱评论不评论