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

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

高老师3个月前 (11-13)大杂烩93

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# md5加密,C# md5加密代码

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

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

c#中文简体转换繁体

c#中文简体转换繁体

private const string fantizi = "高久峰是個程序員"; private const string jiantizi = "高久峰是个程序员...

redis安装教程

redis安装教程

1.文件redis-2.6.14.tar.gz的上传 /home/john/创建rdtar文件夹 上传redis-2.6.14.tar.gz至rdtar文件夹  2.解压文件  cd /home/john/rdtar tar &n...

redis所有key命令,redis key命令

redis所有key命令,redis key命令

1.设置key的value     set name gao2.获取key的value     get name3.删除key            del key1 key2 ... Keyn4.修...

redis string结构及命令详解

redis string结构及命令详解

1.set key value [ex 秒数] / [px 毫秒数]  [nx] /[xx]如: set a 1 ex 10 , 10秒有效Set a 1 px 9000  , 9秒有效注: 如果ex,px同时写,以后面的有效期为准如 set a 1 ex 100 px 9000...

redis链表,redis list链表命令大全

redis链表,redis list链表命令大全

1.lpush key value  作用: 把值插入到链接头部(左边)2.rpush key value  作用: 把值插入到链接尾部(右边)3.lrange key start  stop 作用: 返回链表中[start ,stop]中的元素 规律: 左数从0开始,...