当前位置:首页 > 大杂烩 > 正文内容

mqtt简介、MQTT特性、MQTT核心概念

高老师4个月前 (11-13)大杂烩111

1.1 MQTT简介

MQTT(Message Queuing Telemetry Transport)由IBM于1999年开发的一种基于"发布订阅模式"的轻量级的消息传输协议

发布订阅模式是一种传统的客户端-服务器架构的替代方案,因为一般传统的客户端-服务器是客户端能够直接和服务器进行通信完成消息的传输。发布订阅模式会将发送消

息的发布者publisher与接收消息的订阅者subscribers进行分离,publisher与subscribers 并不会直接通信,他们甚至都不清楚对方是否存在,他们之间的交流由

第三方组件broker代理。

pub/sub 最重要的方面是 publisher 与 subscriber 的解藕,这种耦合度有下面二个维度:

1、空间解耦:publisher 与 subscriber 并不知道对方的存在。

2、时间解藕:publisher 与 subscriber 并不一定需要同时运行。

MQTT它在物联网应用中广受欢迎,能够实现传感器、执行器和其它设备之间的高效通信。非常适用于资源受限的设备和低带宽、高延迟或不稳定的网络环境。

1.2 MQTT特性

它的主要特点包括:

1、轻量级:物联网设备通常在处理能力、内存和能耗方面受到限制。MQTT开销低、报文小的特点使其非常适合这些设备,因为它消耗更少的资源,即使在有限的能力下也

能实现高效的通信。

2、可靠:物联网网络常常面临高延迟或连接不稳定的情况。MQTT支持多种QoS等级、会话感知和持久连接,即使在困难的条件下也能保证消息的可靠传递,使其非常适合

物联网应用。

3、安全通信:安全对于物联网网络至关重要,因为其经常涉及敏感数据的传输。为确保数据在传输过程中的机密性,MQTT提供传输层安全(TLS)和安全套接层(SSL)

加密功能。此外,MQTT 还通过用户名/密码凭证或客户端证书提供身份验证和授权机制,以保护网络及其资源的访问。

4、双向通信:MQTT的发布-订阅模式为设备之间提供了无缝的双向通信方式。客户端既可以向主题发布消息,也可以订阅接收特定主题上的消息,从而实现了物联网生态

系统中的高效数据交换,而无需直接将设备耦合在一起。这种模式也简化了新设备的集成,同时保证了系统易于扩展。

5、语言支持:物联网系统包含使用各种编程语言开发的设备和应用。MQTT具有广泛的语言支持,使其能够轻松与多个平台和技术进行集成,从而实现了物联网生态系统中

的无缝通信和互操作性。常见编程语言的支持:PHP、Node.js、Python、Golang、Node.js、java等。

1.3 MQTT核心概念

MQTT客户端

任何运行MQTT客户端库[MQTT开发工具包]的应用或设备都是MQTT客户端。例如使用MQTT的即时通讯应用是客户端,使用MQTT上报数据的各种传感器是客户端,各种MQTT

测试工具也是客户端。

MQTT Broker

MQTT Broker是负责处理客户端请求的关键组件,包括建立连接、断开连接、订阅和取消订阅等操作,同时还负责消息的转发。一个高效强大的MQTT Broker能够轻松应

对海量连接和百万级消息吞吐量,从而帮助物联网服务提供商专注于业务发展,快速构建可靠的MQTT应用。

主题

MQTT主题本质上是一个UTF-8编码的字符串,是MQTT协议进行消息路由的基础。可以理解为就是通过主题对消息进行分类。MQTT主题类似URL路径,使用斜杠/进行分

层:

chat/room/1
sensor/10/temperature

为了避免歧义且易于理解,通常不建议主题以/开头或结尾,例如 /chatchat/。MQTT主题不需要提前创建。MQTT 客户端在订阅或发布时即自动的创建了主题,开发者无需再关心主题的创建,并且也不需要手动删除主题。


扫描二维码推送至手机访问。

版权声明:本文由高久峰个人博客发布,如需转载请注明出处。

本文链接:https://blog.20230611.cn/post/850.html

分享给朋友:

“mqtt简介、MQTT特性、MQTT核心概念” 的相关文章

c#中string和StringBuilder效率对比

c#中string和StringBuilder效率对比

    c#中string和StringBuilder直接看看执行速度。(2).String类型累计赋值Test               ...

Application的错误使用

Application的错误使用

Application 对象用于存储和访问来自任意页面的变量,类似 Session 对象。不同之处在于所有的用户分享一个 Application 对象,而 session 对象和用户的关系是一一对应的。很多的书籍中介绍的Application对象都喜欢以统计在线人数来介绍Application 对象...

Git推送文件到远程仓库

Git推送文件到远程仓库

1.远程仓库的协作模式开发者把自己最新的版本推到线上仓库,同时把线上仓库的最新代码,拉到自己本地即可2.注册git帐号国外: http://www.github.com国内: http://git.oschina.net2.在码云创建项目,不要初始化readmegit push https://gi...

Git从远程仓库更新文件

Git从远程仓库更新文件

 git   pull  https://git.oschina.net/392223903/learn.git   master   换为您的git地址...

Git日志查看和版本切换

Git日志查看和版本切换

日志查看:git log版本切换:方式1:git  reset  --hard  HEAD^   倒退一个版本git  reset  --hard  HEAD^^  倒退两个版本方式2:(版本号的形式,建议版本号码补充完...

C# md5加密,C# md5加密代码

C# md5加密,C# md5加密代码

public static string GetMD5(string str) {     //创建MD5对象     MD5 md5 = MD5.C...