物联网MQTT协议分析和开源Mosquitto部署验证

本文深入解析MQTT协议,包括其发布/订阅模式、消息类型、服务质量等级等,并在Ubuntu上部署开源MQTT代理Mosquitto进行验证,为物联网平台构建打下基础。
摘要由CSDN通过智能技术生成

在《物联网核心协议消息推送技术演进》一文中已向读者介绍了多种消息推送技术的情况,包括HTTP单向通信、Ajax轮询、Websocket、MQTT、CoAP等,其中MQTT协议为IBM制定并力推,其具有开放、简单、轻量级以及易于实现的特点使得其即便在资源受限的环境中也能得到很好的使用,比如运行在资源紧缺型的嵌入式系统中或网络带宽非常昂贵的环境中,除此之外,它也被广泛用于遥感勘测、智能家居、能源监测和医疗应用程序等各个领域,是物联网的重要组成部分,将来可能会成为物联网的事实标准。

本篇文章将帮助读者认识MQTT协议以及在Linux环境下部署MQTT的开源实现Mosquitto进行体验验证,在后续文章中将展开对其源码框架的分析,为构建物联网平台做好铺垫。

一、MQTT协议分析

1.1、MQTT协议简介

MQTT(MessageQueueing Telemetry Transport Protocol)的全称是消息队列遥感传输协议的缩写,是由IBM公司推出的一种基于轻量级代理的发布/订阅模式的消息传输协议,运行在TCP协议栈之上,为其提供有序、可靠、双向连接的网络连接保证。由于其开放、简单和易于实现所以能够应用在资源受限的环境中,对于M2M和物联网应用程序来说是一个相当不错的选择。 

1.2、发布者/订阅者

MQTT采用代理的发布/订阅模式实现了发布者和订阅者的解耦(decouple),因此,在MQTT协议中有三种角色:代理服务器、发布者客户端以及订阅者客户端,其中发布者和订阅者互不干扰,也就是说发布者和订阅者互不知道对方的存在,它们只知道代理服务器,代理服务器负责将来自发布者的消息进行存储处理并将这些消息发送到正确的订阅者中去。这种解耦体现在以下3个方面上:

·空间解耦:发布者和订阅者不必知道对方的存在,例如对方的IP地址或者端口;

·时间解耦:发布者和订阅者不必同时建立连接;

·同步解耦:发布者和订阅者在发布消息或接收消息的时候不需要同步;

 

 

1.3、MQTT的消息类型

MQTT的三种角色通过14种不同的消息类型进行交互:

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值