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 的区别
参考
- 图解物联网
微信关注我哦 👍
我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式