MQTT简单了解

本文介绍了MQTT协议在物联网中的应用,强调其轻便、开放的特点,涉及客户端-服务端结构、发布-订阅模式以及主题的概念。通过工厂监控设备温度的例子展示了协议的工作原理。
摘要由CSDN通过智能技术生成

    今天记录一下MQTT最基础的理论部分,简单说一下MQTT的用途及特点。

    现如今,MQTT广泛应用于物联网领域中,了解MQTT在学习物联网协议中显得尤为重要。我们先来看一下MQTT文档中对其的描述:“MQTT是一个客户端服务端架构的发布/订阅模式的消息传输协议。它的设计思想是轻巧、开放、简单、规范,易于实现。这些特点使得它对很多场景来说都是很好的选择,特别是对于受限的环境如机器与机器的通信(M2M)以及物联网环境(IoT)。

    上述官方的描述中,有几个重要的名词:客户端、服务端、发布、订阅。下来我们简单看一下这四个词的具体含义。

①客户端和服务端

    在基本的MQTT模型中,通常会有一个服务端和很多的客户端,所有的客户端都连接在服务端上。其中,服务端起到了中间桥梁的作用,用来将接着其上的所有客户端联系起来。服务端本身不会创造信息,它只是起到了转运数据的作用,客户端与客户端之间要想进行通讯,就需要借助服务端的帮助。简单来说,客户端与客户端之间是不能直接进行通讯的,一个客户端产生数据后,会先发送到服务端,如果另一个客户端需要这个数据,服务端就会把这个数据发送给需要这个数据的客户端。那么服务端是怎么知道谁需要这个数据呢?这就涉及到了下面的发布与订阅。

②发布和订阅

    说这个之前要先提到一个叫做“主题”的概念,主题可以理解为为特定某类的数据起一个统称,假设一个传感器传输来的数据,就可以起一个主题叫“传感器数据1”,在MQTT中,服务端接收到的数据都是“主题”+“数据”的格式,这样就可以实现其模型中的发布/订阅模式。发布订阅的整个流程如下:当客户端A向服务端发送了一个主题为“温度传感器数据”的这样一系列数据后,服务端就会去搜索剩下的客户端中,哪个客户端订阅了名为“温度传感器数据”这个主题,如果服务端一查,发现客户端B订阅了这个主题,那么服务端就会把这个数据发送给客户端B,同理,如果客户端B向服务端发送了一个主题数据,客户端A订阅了这个主题,那服务端就会把这个数据发送到客户端A,这就是MQTT的发布订阅模型。

    下面我们通过一个例子看一下:

    模型如上图所示,假设在一个工厂里,为了监测设备的发热情况,给设备上贴了个温度传感器,这个传感器每隔一秒中,就会采集设备的温度信息,并将其发送给一个服务器,此时这个温度传感器就对应着MQTT模型中的客户端,这个服务器就相当于是服务端,当温度传感器发来了一个主题为“温度”的数据时,某公司的电脑订阅了这个主题,于是这个服务器就会把这个数据发送到某公司的这个电脑上,这个电脑也相当于客户端,温度传感器每一秒传一个数据给服务器,服务器就每一秒把这个数据发送给这台电脑,则电脑上的上位机就每一秒更新一次温度状态,这样就完成了设备温度的监测。假如这个传感器是在一个控制器里面,某公司的这台电脑可以发送一个主题为“关机”的数据给服务器,假设实时监测设备温度时,发现设备温度上升速度过快或是已经过热了,这时这台电脑就可以发送一个“关机”数据给服务端,服务端接收,假设温度传感器所在的控制器订阅了这个主题,服务端就会把数据发给控制器,控制器根据这个发来的数据关掉已经过热的机器,这就有了每个客户端与服务端的接收内容。

    

    为什么要用这个模型呢?上面只举了两个客户端的例子,假设我们现在有上千个客户端,如果这上千个客户端之间想要发送数据,而每个客户端需要的数据又不一样,这时给每个客户端与所需数据客户端之间建立联系就是一件非常麻烦的事,如果后期想要修改某些客户端的接收内容也是比较费劲的,但如果有一个服务端,我们把所以的数据都发到服务端,然后在服务端中记录一下这些数据该发到哪个客户端,建立一个表,后面需要的话就改这个表,是不是整个流程就会简单很多。

    这里只是简单记录了一下MQTT最基础的部分,简述了一下MQTT是个什么。具体想要实现,我们还需要了解MQTT的各个报文格式。

  • 24
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值