甘肃住房和城乡建设厅网站,seo技术培训教程视频,如何做小程序平台,dede织梦php文章图片网站源码 完整后台 带在线音乐1、前言 近年来物联网的发展如火如荼已经渗透到我们生活的方方面面。从智能家居到工业自动化从智慧城市到智慧农业物联网#xff0c;正在以前所未有的速度改变着我们的生活。 大家现在可能已经习惯了通过手机控制家里的灯光、空调和电视#xff0c;这就是物联网在智能家居领域…1、前言 近年来物联网的发展如火如荼已经渗透到我们生活的方方面面。从智能家居到工业自动化从智慧城市到智慧农业物联网正在以前所未有的速度改变着我们的生活。 大家现在可能已经习惯了通过手机控制家里的灯光、空调和电视这就是物联网在智能家居领域的应用如果在10年前看到这种设备的应用肯定觉得很牛批而现在只要是个设备都能上云这种家电设备的远程控制已经成了大家习以为常的配置了。而在工业领域物联网技术可以帮助企业实现自动化生产、设备监控和预防性维护提高生产效率和产品质量。在智慧城市建设中物联网技术可以用于交通管理、环境监测和公共安全等方面提升城市管理和居民生活的质量。 在物联网、工业互联网智慧城市智能家居、智能设备、移动应用等方面的广泛应用就离开不MQTT协议。
2、MQTT协议简介 通信协议MQTTMessage Queuing Telemetry Transport是一种轻量级的通信协议被广泛应用于物联网和分布式系统中。它以其简单、可靠和高效的特性而备受推崇成为连接设备和应用程序的首选协议。MQTT的重要性不言而喻它为实时通信提供了可靠的解决方案使得设备之间的数据交换和控制变得更加便捷。 MQTT广泛应用于工业物联网、智能家居、各类智能制造或各类自动化场景等。MQTT是一个基于客户端-服务器的消息发布/订阅传输协议MQTT协议由于其用极少的代码和有限的带宽为连接远程设备提供实时可靠的消息服务具有开销低、占用带宽低、即时通讯等优点它具有以下主要特性
1. 发布/订阅模式MQTT采用发布/订阅模式其中消息发布者Publisher将消息发布到特定的主题Topic而订阅者Subscriber通过订阅特定的主题来接收消息。
2. 主题Topic主题是MQTT消息的分类标识类似于消息的目的地。发布者将消息发布到特定的主题而订阅者通过订阅特定的主题来接收与该主题相关的消息。
3. 消息质量等级QoSMQTT定义了三个消息质量等级QoS 0最多一次、QoS 1至少一次和QoS 2只有一次。发布者和订阅者可以根据需求选择适当的QoS级别。
4. 保留消息Retained Message发布者可以选择发布一个保留消息该消息将被存储在MQTT代理服务器上并在有订阅者订阅该主题时发送给订阅者。
5. 遗嘱消息Will Message发布者可以设置一个遗嘱消息当发布者异常断开连接时MQTT代理服务器会将遗嘱消息发送给订阅者。
6. 连接和会话MQTT客户端通过与MQTT代理服务器建立连接来进行通信。客户端可以选择保持连接以维护会话状态并在重新连接时恢复之前的会话。
7. 低带宽和资源消耗MQTT协议设计为轻量级具有较低的带宽和资源消耗。它适用于低带宽和不稳定的网络环境如物联网设备和传感器网络。 MQTT是IBM开发的即时通讯协议物联网通信的主流协议之一。该协议支持所有平台几乎可以把所有联网物品和外部连接起来被用来当做传感器和制动器的通信协议。MQTT协议的底层是基于TCP/IP协议。 以下几张图说明MQTT的角色地位 3、MQTT协议原理
实现MQTT协议需要客户端和服务器端通讯完成也就是说它是一种客户端/服务器模型即CS模型在通信过程中一个是服务器一个是客户端在通讯过程中MQTT协议中有三种身份发布者Publish、代理Broker、订阅者Subscribe。其中消息的发布者和订阅者都是客户端消息代理是服务器消息发布者可以同时是订阅者也就是说客户端可以是订阅者也可以是发布者MQTT传输的消息分为主题Topic和负载Payload两部分
Topic可以理解为消息的类型订阅者订阅Subscribe后就会收到该主题的消息内容payload服务器会将消息发送给订阅所匹配标签的每个客户端。Payload可以理解为消息的内容是指订阅者具体想要的内容。 MQTT会构建底层网络传输它将建立客户端到服务器的连接提供两者之间的一个有序的、无损的、基于字节流的双向传输当应用数据通过MQTT网络发送时MQTT会把与之相关的服务质量QoS和主题名Topic相关连。
MQTT是一个基于客户端-服务器的消息发布/订阅传输协议那么作为客户端可以
发布其他客户端订阅的信息订阅其它客户端发布的消息退订或删除应用程序的消息断开与服务器连接。
MQTT服务器以称为消息代理Broker可以是一个应用程序或一台设备。它位于消息发布者和订阅者之间它可以
接受来自客户的网络连接接受客户发布的应用信息处理来自客户端的订阅和退订请求向订阅的客户转发应用程序消息。 它们的组成示意图 发布订阅模式Publish-Subscribe Pattern是一种消息传递模式它将发送消息的客户端发布者与接收消息的客户端订阅者解耦使得两者不需要建立直接的联系也不需要知道对方的存在。
MQTT发布/订阅模式的精髓在于由一个被称为代理Broker的中间角色负责所有消息的路由和分发工作发布者将带有主题的消息发送给代理订阅者则向代理订阅主题来接收感兴趣的消息。 发布者Publisher
负责将消息发布到主题上发布者一次只能向一个主题发送数据发布者发布消息时也无需关心订阅者是否在线。 订阅者Subscriber
订阅者通过订阅主题接收消息且可一次订阅多个主题。MQTT还支持通过共享订阅的方式在多个订阅者之间实现订阅的负载均衡。 代理Broker
负责接收发布者的消息并将消息转发至符合条件的订阅者。另外代理也需要负责处理客户端发起的连接、断开连接、订阅、取消订阅等请求。 4、MQTT协议结构
在MQTT协议中一个MQTT数据包由固定头Fixed header、可变头Variable header、消息体payload三部分构成。
固定头Fixed header存在于所有MQTT数据包中表示数据包类型及数据包的分组类标识。 可变头Variable header存在于部分MQTT数据包中数据包类型决定了可变头是否存在及其具体内容。 消息体Payload存在于部分MQTT数据包中表示客户端收到的具体内容。
本系列博客文章就以C#作为开发语言一步步紧致如初地分析MQTT协议以实现应用层软件开发让屌丝逆袭飞起来。