MQTT协议原理

个人理解图示:

1.MQTT协议实现方式

实现MQTT协议需要客户端和服务器端通讯完成,在通讯过程中,MQTT协议中有三种身份:发布者、代理、订阅者,其中消息的发布者和订阅者都是客户端,消息代理是服务器,消息发布者也可以是订阅者。

MQTT传输的消息分为:主题(Topic)和负载(payload)两部分:

  • 主题:可以理解为消息的类型,订阅者订阅(Subscribe)后,就会收到该主题的消息内容(payload)
  • 负载:可以理解为消息内容,是指的订阅者具体收到的数据。

2.网络传输与应用消息

  • MQTT通过 TCP/IP 构建底层网络传输,它将建立客户端到服务器的连接,提供了两者之间的有序、无损、基于字节流的双向传输。
  • 当消息通过MQTT服务器发送时,MQTT会把相关的服务质量与主题相关联。

3.MQTT客户端

使用MQTT的程序或设备。客户端总是通过网络连接到服务端。它可以

  • 发布消息给其它相关的客户端。
  • 订阅以请求接受相关的消息。
  • 取消订阅以移除接受消息的请求。
  • 从服务端断开连接

4. 服务器

MQTT服务器以称为"消息代理"(Broker),可以是一个应用程序或一台设备。它是位于消息发布者和订阅者之间,它可以:

  • 接受来自客户端的网络连接。
  • 接受客户端发布的应用消息。
  • 处理客户端的订阅和取消订阅请求。
  • 转发应用消息给符合条件的已订阅客户端。

5. MQTT协议中的订阅、主题、会话

5.1 订阅(Subscription)

订阅包含主题筛选器(Topic Filter)和服务质量(QoS)。订阅会与一个会话(Session)关联。一个会话可以包含多个订阅,每一个会话中的每个订阅都有一个不同的主题筛选器。

5.2 会话(Session)

每个客户端与服务器建立连接后就是一个会话,客户端和服务器之间有状态交互。会话存在于一个网络之间,也可能在客户端和服务器之间跨越多个连续的网络连接。

5.3 主题名(Topic Name)

连接到一个应用程序消息的标签,该标签与服务器的订阅相匹配。服务器会将消息发送给订阅所匹配标签的每个客户端。

5.4 主题筛选器(Topic Filter)

一个对主题名通配符筛选器,在订阅表达式中使用,表示订阅所匹配到的多个主题。

5.5 负载(Payload)

消息订阅者所具体接收的内容。

6. MQTT协议中的方法

MQTT协议中定义了一些方法(也被称为动作),主要方法有:

  • Connect 与服务器建立连接。
  • Disconnect 与服务器断开 TCP/IP 连接。
  • Subscribe 订阅
  • UnSubscribe 取消订阅
  • Publish MQTT客户端发送消息

转载于:https://my.oschina.net/lwenhao/blog/2088046

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值