0
关注
54023
浏览

MQTT和CoAP哪个最可能成为未来物联网通信标准协议?

查看全部 23 个回答

刘凯 核心会员 用户来自于: 北京市
2026-01-13 10:07
我现在认为CoAP和MQTT的协议除了考虑设备的TCP/UDP堆栈实现能力和对设备的压力之外,更加重点的考虑点是:
  1. 服务器架构和开发成本?
  2. 应用本身数据流向,流量,频率,持久的需求?
  3. 长连接还是短连接?
  4. 数据分享API的需求?
MQTT,其实就是IBM把服务器间异步通讯用的消息队列Message Queue(MQ)中间件前置到IOT接入而已。天生适合多对多(服务器对服务器,设备对服务器,设备对APP),异步,后台应用,以及即时通讯(多客户端对等)场景。不过就是约定了报文头而已。自己用Redis PubSub/MQ也可以构建。最简单的IOT架构:Device+MQTT+APP,如果不存储数据的话。需要数据持久可以是:Device+MQTT+Web/APP+DB(NoSQL/NewSQL/BigData/Lambda)+APP。 CoAP,基于UDP接口,参考HTTP上的REST API,适合数据采集这种多(设备)对一(服务器) 场景,系统架构类似于传统Web。但是CoAP UDP不是面对连接的,所以方向控制需要高层构建协议。CoAP支持多播,也可以实现一对多场景,但是好像和MQTT不一样。应该是局域网内的多播?了解的兄弟请提点一下。但总的网站架构迎来类似于传统Web:CoAP+Web+DB+APP。弱势是,数据必须流经DB转给第三方。当然,如果Web内部有MQ,可以通过REST API暴露给第三方。变成: CoAP + Web + DB + APP + Redis/MQ + REST + APP 请观察最近的BAT动向,都把MQTT作为物联网前置接入套件单列出来作为标准云服务提供。阿里云物联网套件,百度开放云物联网服务IOT,腾讯QQ物联平台,中移动OneNet开放云,Amazon IOT服务......更别提环信,野狗之类原来做IM云服务的,都将MQTT作为IM/IOT共享的接入服务了。 MQTT还有一点:长连接。采用长连接MQTT还是无连接CoAP,和应用数据属性有关。是维持大量非活动长连接消耗大,还是大量UDP包对于服务器消耗大,我一直没有得到结论。反正我从Windows发起大量UDP压测,总是报给我操作系统端口不够的一个错误。 我之前的架构是:Socket + Web + DB(Redis/SQL)+ APP,现在不得不将Redis作为沟通Socket/Web的通道,和第三方APP/Sever的通道。但用Redis PubSub构建实现起来很麻烦。而且也不是标准实现,客户实施的周期反而不如MQTT。所以准备改造成为上述MQTT协议方式。 【更新】 CoAP大体上是采用数据报方式,可以基于UDP,短消息,以及6LowPAN等传输层。而且大体上在WSN内部可以使用。不过由于CoAP也可以用于网关与云之间通讯,所以现在出现了CoAP over TCP的草案。不过,我觉得该草案受到CoAP RFC7252的约束太多,所以我和客户约定了一个版本,私底下命名为CoTCP(CoAP over TCP)。呵呵,私有的协议。但是保留了面向资源的REST风格。

关于作者

Roy Luo 核心会员

这家伙很懒,还没有设置简介

问题动态

发布时间
2026-01-13 11:47
更新时间
2026-01-13 11:47
关注人数
0 人关注

推荐内容

LoRa物联网技术可以与传统以太网结合吗?
物联网前景如何?
亲戚专科学校 物联网应用技术 专业,女,毕业能找到工作么?
有没有介绍物联网技术发展史的书?
物联网技术和5g技术有什么关系吗?
物联网的发展趋势?你心中的物联网是什么样的?
信工所四室物联网组如何?
智能家居控制平台与接入端口开源的可行性?
物联网会给人的生活带来哪些革命性变化?
物联网其实早就有了,为什么最近这么火?
All Rights Reserved Powered BY WeCenter V4.1.0 © 2026 粤ICP备20025096号-2
  

粤公网安备 44190002007303号