MQTT协议

一、MQTT、TCP、HTTP区别

协议类型模式适用场景特性连接方式
MQTT发布/订阅物联网设备间的消息传输低宽带消耗,消息持久化持久连接
TCP请求/响应对数据传输可靠性要求高的场景面向连接、可靠性、流式传输需要建立连接
HTTP请求/响应Web页面的数据传输和交互超文本传输、多种请求方法短连接

二、MQTT协议介绍

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,该协议构建于TCP/IP协议上。通常用于机器与机器(M2M)通信和物联网(IoT)。

三、MQTT实现方式

3.1 发布订阅

 MQTT协议中有三种身份: 发布者(Publish)、代理(Broker)(服务器)、订阅者(Subscribe)。 其中,消息的发布者和订阅者都是客户端,消息代理是服务器,消息发布者可以同时是订阅者。

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

  1. Topic: 可以理解为消息的类型,订阅者订阅(Subscribe)后,就会收到该主题的消息内容(payload)\
  2. payload: 可以理解为消息的内容,是指订阅者具体要使用的内容

3.2 QoS

QoS 0

这一级别会发生消息丢失或重复,消息发布依赖于底层TCP/IP网络。即:<=1

QoS 1

QoS 1 承诺消息将至少传送一次给订阅者

QoS 2

使用 QoS 2,我们保证消息仅传送到目的地一次。为此,带有唯一消息 ID 的消息会存储两次,首先来自发送者,然后是接收者。QoS 级别 2 在网络中具有最高的开销,因为在发送方和接收方之间需要两个流。

3.3 数据包结构

  • 固定头(Fixed header),存在于所有MQTT数据包中,表示数据包类型及数据包的分组类标识;
  • 可变头(Variable header),存在于部分MQTT数据包中,数据包类型决定了可变头是否存在及其具体内容;
  • 消息体(Payload),存在于部分MQTT数据包中,表示客户端收到的具体内容;

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值