MQTT、EMQX、MQTTX介绍

MQTT介绍

先来讲个小故事(来源于DS)

在魔法森林里,住着许多小动物和一台“中央邮局”(MQTT Broker)。动物们不能互相喊话(因为森林太大,声音传不远),但它们可以通过邮局的“主题信箱”(Topics)来传递消息。

邮局门口有一排信箱,每个信箱都有一个名字:“天气报告”信箱、“危险警报”信箱、“胡萝卜价格”信箱。

动物们(订阅者)可以订阅(Subscribe)自己关心的信箱。比如:兔子订阅了“胡萝卜价格”信箱(它只关心胡萝卜);松鼠订阅了“天气报告”和“危险警报”信箱(它怕下雨和老鹰)。

有一天,森林气象站(发布者)检测到要下雨了,就往“天气报告”信箱投递一条消息:“主题:天气报告,内容:下午有暴雨!”邮局(Broker)立刻把这条消息自动复制,塞进所有订阅了“天气报告”信箱的动物家里:松鼠收到后,赶紧回家收坚果。但兔子没订阅这个信箱,所以完全不知道。

邮局还支持“存信服务”(Quality of Service)。刺猬订了“天气报告”,但它在冬眠(离线)。邮局会帮它存着消息,等它春天醒来再一起送过去。蜜蜂发消息时说:“这条蜂巢位置信息超级重要!必须确保蜂后收到!”(QoS 2),邮局会反复确认,直到蜂后签收。

从故事中我们可以知道mqtt的组成:服务端(MQTT Broker)、发布者(Publisher)、主题(Topic)、消息(Message)、订阅者(Subscriber),它们之间的关系可以用下图表示。

接下来正式介绍下MQTT

是什么?Message Queuing Telemetry Transport,消息队列遥测传输,一种基于TCP/IP的协议。

为什么?应用于低带宽、网络延迟、不可靠的环境,保障机器与机器之间的通信。

有什么特点?轻量、简单、开放、低开销、低带宽占用。

本质是什么?发布/订阅的通信模式。

QoS Qualified of Service服务质量

故事中还提到一个存信服务的概念,用于控制消息的可靠性和传输效率(要想保障可靠性,可能就要多传输几次,降低了传输效率),有3个级别:

Qos 0:至多一次,适用于可靠性要求不高的场景,传感器数据的临时更新。消息可能丢失。

QoS 1:至少一次,适用于可靠性要求高的场景,如控制指令的传递。可能出现重复传输的情况。

QoS 2:一次,可靠性最高,传输效率也最低,确保消息被送达,适用于可靠性要求非常高的场景,如金融交易或严格的数据同步。

目前流行的共享单车智能锁,智能锁可以定时使用QoS level 0质量消息请求服务器,发送单车的当前位置,如果服务器没收到也没关系,反正过一段时间又会再发送一次。之后用户可以通过App查询周围单车位置,找到单车后需要进行解锁,这时候可以使用QoS level 1质量消息,手机App不断的发送解锁消息给单车锁,确保有一次消息能达到以解锁单车。最后用户用完单车后,需要提交付款表单,可以使用QoS level 2质量消息,这样确保只传递一次数据,否则用户就会多付钱了。

EMQX介绍

EMQX又是什么?和MQTT有什么关联?EMQX是mqtt broker的一种实现(好比mqtt broker是类,EMQX是对象),mqtt broker还有很多其他的实现,比如mosquitto。

如果我们需要测试与mqtt broker 的通信,但又缺少实际的终端设备,就可以使用一款MQTT客户端工具:MQTTX。

MQTTX安装使用

MQTTX是一款由EMQ(一家专注于MQTT和物联网消息服务的公司)开发和维护的开源工具。

下载安装

下载地址:MQTTX: Your All-in-one MQTT Client Toolbox

连接mqtt broker

订阅消息

发布消息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值