MQTT是一个C/S架构的发布/订阅模式的消息传输协议。它的设计思想是轻巧、开放、简单、规范,因此易于实现。这些特点使得它对很多场景来说都是很好的选择,包括受限的环境如机器与机器的通信(M2M)以及物联网环境(IoT),这些场景要求很小的代码封装或者网络带宽非常昂贵。
本协议运行在TCP/IP,也支持WebSocket、TLS,或其它提供了有序、可靠、双向连接的网络连接上。它有以下特点:
1. 使用发布/订阅消息模式,提供了一对多的消息分发和应用之间的解耦。
2. 消息传输不需要知道负载内容。
3. 提供三种等级的服务质量(QoS):
1)最多一次 ,尽操作环境所能提供的最大努力分发消息。消息可能会丢失。例如,这个等级可用于环境传感器数据,单次的数据丢失没关系,因为不久之后会再次发送。
2)至少一次 ,保证消息可以到达,但是可能会重复。
3)仅一次 ,保证消息只到达一次。例如,这个等级可用在一个计费系统中,这里如果消息重复或丢失会导致不正确的收费。
4. 很小的传输消耗和协议数据交换,最大限度减少网络流量。
5. 异常连接断开发生时,能通知到相关各方。
* Fixed header 固定报头,所有控制报文都包含
* Variable header 可变报头,部分控制报文包含
* Payload 有效载荷,部分控制报文包含
服务质量QoS定义
通配符
本文分享自 oldriver编程老司机 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!