MQTT特点

  1. "轻量级"通信协议:实现MQTT协议的开销比较小,无需太多的额外数据/文本。
  2. 基于TCP/IP协议:建立TCP连接后,云下设备或云平台按照MQTT协议规定的数据格式来通信。(属于应用层)
  3. 基于客户端——服务端模式下:云下设备????客户端、云平台????服务端
  4. 基于[消息发布(PUBLISH)] 或 [消息订阅(SUBSCRIBE)]模式
    #请求——回答模式:假设打电话的时候,只有电话被播出并且对方的电话被接听,才能开始沟通交流。典型的同步模式。
    #发布——订阅模式:假设邮件发送的过程,只有邮件编辑完成之后点击发送,就可以完成。邮件服务器会将邮件发送给对应的接收者,当接收者看到邮件提醒之后,如何时候看邮件都可以。(间接联系)
    #两种模式的区别: 发布——订阅模式解耦了发布消息的客户(发布者)与订阅消息的客户(订阅者)之间的关系。发布者与订阅者之间不需要直接建立联系。
    学习日记——MQTT协议初学
    如图所示,客户端B和客户端C都向MQTT订阅了主题文章,如何客户端A向MQTT发布了一个消息,这个消息的主题参数就是文章,那么MQTT会将这个主题文章消息分发给客户端B和客户端C。因为客户端B和客户端C都订阅了文章这个主题,客户端A也可以订阅这个主题,客户端A和客户端C和客户端B都可以向MQTT发布消息,逻辑上客户端A和客户端B和客户端C是可以进行通信的。但是在网络连接上,客户端A只和MQTT服务端建立网络连接,客户端B也只和MQTT服务端建立网络连接,客户端C也只和MQTT服务端建立网络连接。这样的话,消息的发布者和订阅者她们之间网络连接就是解耦的,通过MQTT服务端将消息转发给订阅者。

MQTT协议

  1. 客户端Client
    使用MQTT的程序或设备。客户端总是通过网络连接到服务端。它可以
    ●发布应用消息给其它相关的客户端。
    ●订阅以请求接受相关的应用消息。
    ●取消订阅以移除接受应用消息的请求。
    ●从服务端断开连接。
  2. 服务端Server
    一个程序或设备,作为发送消息的客户端和请求订阅的客户端之间的中介。服务端
    ●接受来自客户端的网络连接。
    ●接受客户端发布的应用消息。
    ●处理客户端的订阅和取消订阅请求。
    ●转发应用消息给符合条件的已订阅客户端
    #服务端不是数据的终点而是数据的中转站

数据表示

  1. 二进制位
    字节中的位从0到7。第7位是最高有效位,第0位是最低有效位。
  2. 整数数值
    整数数值是16位,使用大端序(big-endian,高位字节在低位字节前面)。这意味着一个16位的字在网络上表示为最高有效字节(MSB) , 后面跟着最低有效字节(LSB)
  3. UTF-8编码字符串
    文本字段编码为UTF-8格式的字符串,UTF-8编码字符串是一个高效的Unicode字符编码格式,为了支持基于文本的通信,它对ASCII字符的编码做了优化。建议大家尽量发送标准的ASCII码字符串。每个字符串都要有一个两字节的长度字段作为前缀,它给出这个字符串UTF-8编码的字节数。(MQTT编程需要计算每一个字符串的长度,并且把这个长度作为前缀。

相关文章:

  • 2021-09-01
  • 2022-01-17
  • 2021-06-01
  • 2021-07-04
  • 2021-08-18
  • 2022-01-18
  • 2021-09-04
  • 2021-11-24
猜你喜欢
  • 2021-08-29
  • 2021-09-02
  • 2021-06-27
  • 2021-09-13
  • 2021-04-15
相关资源
相似解决方案