博客
关于我
MQTT介绍及与其他协议的比较
阅读量:795 次
发布时间:2023-02-09

本文共 800 字,大约阅读时间需要 2 分钟。

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是一种基于TCP/IP的发布/订阅协议,主要用于连接远程传感器和控制设备。它支持长连接机制,通过定期发送心跳包确保连接状态,但这也意味着在电池供电的设备上可能存在能耗问题。

MQTT的特点

  • 发布/订阅模式:采用一对多的消息发布方式,减少了应用程序之间的耦合度。
  • 消息质量等级(QoS):提供三种服务质量选项:
    • 至多一次:依赖底层TCP/IP网络,可能存在消息丢失或重复。
    • 至少一次:确保消息可靠到达,但可能存在重复。
    • 只有一次:确保消息唯一性,适用于严格要求的场景,例如计费系统。
  • 角色划分:包括发布者、订阅者和代理(Broker)。这种结构替代了传统的客户端/服务器模型,实现了空间解耦、时间解耦和同步解耦。
  • 中心角色:MQTT服务器或代理(Broker)是协议的核心,负责消息路由和管理。
  • MQTT与其他协议的比较

  • 与TCP Socket
    • TCP和MQTT并不矛盾,MQTT运行于TCP层之上。嵌入式开发中常用LwIP协议栈支持MQTT。
    • TCP的粘包和分包问题需要额外处理,而MQTT支持一次性发送大数据,简化了协议设计。
  • 与HTTP
    • HTTP主要用于Web通信,特点是请求-响应模式,适合静态资源获取,但不适合设备反向控制。
    • 实现设备反向控制需使用Comet技术,增加通信开销。
  • 与XMPP
    • XMPP基于XML,报文体积大且交互繁琐,适合嵌入式开发困难。
    • MQTT报文简洁,灵活支持不同数据格式,且提供更好的可靠性保证。
  • 与CoAP
    • CoAP模仿HTTP REST模型,架构复杂,需经过数据库处理,适合复杂场景。
    • MQTT架构简单,设备直接连接MQTT服务器,适合物联网基础架构。
  • MQTT在物联网、手机消息推送和在线聊天等领域应用广泛。其简洁性和高效性使其成为嵌入式设备的理想选择。

    转载地址:http://htffk.baihongyu.com/

    你可能感兴趣的文章
    mysql 网络目录_联机目录数据库
    查看>>
    MySQL 聚簇索引&&二级索引&&辅助索引
    查看>>
    Mysql 脏页 脏读 脏数据
    查看>>
    mysql 自增id和UUID做主键性能分析,及最优方案
    查看>>
    Mysql 自定义函数
    查看>>
    mysql 行转列 列转行
    查看>>
    Mysql 表分区
    查看>>
    mysql 表的操作
    查看>>
    mysql 视图,视图更新删除
    查看>>
    MySQL 触发器
    查看>>
    mysql 让所有IP访问数据库
    查看>>
    mysql 记录的增删改查
    查看>>
    MySQL 设置数据库的隔离级别
    查看>>
    MySQL 证明为什么用limit时,offset很大会影响性能
    查看>>
    Mysql 语句操作索引SQL语句
    查看>>
    MySQL 误操作后数据恢复(update,delete忘加where条件)
    查看>>
    MySQL 调优/优化的 101 个建议!
    查看>>
    mysql 转义字符用法_MySql 转义字符的使用说明
    查看>>
    mysql 输入密码秒退
    查看>>
    mysql 递归查找父节点_MySQL递归查询树状表的子节点、父节点具体实现
    查看>>