记录http与mqtt的区别

这篇具有很好参考价值的文章主要介绍了记录http与mqtt的区别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

此内容来自:http://blog.sina.com.cn/s/blog_68f485d10102yowx.html

HTTP是最流行和最广泛使用的协议。但在过去几年中,MQTT迅速获得了牵引力。当我们谈论物联网开发时,开发人员必须在它们之间做出选择。

设计和消息传递

MQTT以数据为中心,而HTTP是以文档为中心的。HTTP是用于客户端 – 服务器计算的请求 – 响应协议,并不总是针对移动设备进行优化。MQTT在这些术语中的主要优点是轻量级(MQTT将数据作为字节数组传输)和发布/订阅模型,这使其非常适合资源受限的设备并有助于节省电池。

此外,发布/订阅模型为客户提供了彼此独立的存在,增强了整个系统的可靠性。当一个客户端出现故障时,整个系统可以继续正常工作。

速度和交付

根据3G网络的测量结果,MQTT的吞吐量比HTTP快93倍。

此外,与HTTP相比,MQTT协议确保了高传输保证。有3个级别的服务质量:

– 最多一次:保证尽力交付。

– 至少一次:保证消息至少传送一次。但是消息也可以不止一次传递。

– 恰好一次:保证每个消息只被对方接收一次

MQTT还为用户提供Last will&Testament和Retained消息的选项。第一个意味着在客户端意外断开连接的情况下,所有订阅的客户端都将从代理获得消息。保留消息意味着新订阅的客户端将立即获得状态更新。

HTTP协议没有这些功能。

复杂性和消息大小

 MQTT具有相当短的规范。只有CONNECT,PUBLISH,SUBSCRIBE,UNSUBSCRIBE和DISCONNECT类型对开发人员很重要。而HTTP规范要长得多。

MQTT具有非常短的消息头,并且最小的包消息大小为2个字节。通过HTTP协议使用文本消息格式允许它组成冗长的标题和消息。它有助于消除麻烦,因为它可以被人类阅读,但同时它对于资源受限的设备是不必要的。

结论

MQTT协议易于使用。对于未来的解决方案,响应时间,吞吐量,更低的电池和带宽使用率是第一位的,这一点至关重要。在间歇性连接的情况下,它也是完美的。

HTTP是值得和可扩展的。但是当它被称为IoT开发时,MQTT更适合。

 文章来源地址https://www.toymoban.com/news/detail-670410.html

总结分析:

协议 优点 缺点
HTTP 应用广泛,开发成本低 1,服务端无法主动推送数据给client; 2,采用key-value格式,占用存储和计算资源高;
MQTT 小型传输,资源开销小 发布订阅模式,提供1对多消息发布,解除应用程序耦合

mqtt是为大量计算能力有限且工作在低带宽、不可靠网络的远程传感器和控制设备通讯而设计的一种协议。

HTTP是适合使用在性能好一些的终端上,相对以上一些比较重,对设备要求相对高一些。不适合M2M的场景。

mqtt是以数据为中心,数据量一般比较小;

http是以文本为中心,数据量一般比较大。

 

到了这里,关于记录http与mqtt的区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【问题记录】flask开发blog

    学习教程:Flask从零博客开发实战-b站 host=0.0.0.0表示可以在所有端口上 工厂函数 :不直接实例化Flask类,而是在一个函数内创建它,应用程序的配置在函数内部进行。 在“文章管理”界面,标签显示出来是: Tag tag1 Tag tag2 ,但我其实只想要显示它的名称。Tag的模型如下: 再

    2024年02月04日
    浏览(52)
  • STM32 EC200N-CN MQTT链接服务器开发实录

    硬件:STM32F091CBT6 、EC200N-CN模块板 、USB-TTL串口助手 软件:VS CODE  、 STM32CUBEMX、IAR 8.32 连接好EC200N-CN模块和单片机主板。 EC200N-CN模块设计时注意供电和IO电平转换。 EC200N-CN是低功耗的,其主串口用的是1.8V电压域的,一般使用的STM32F0系列单片机IO口是3.3V电平的,两者连接的时

    2024年02月10日
    浏览(36)
  • IOS 手机抓包 频繁 访问 gateway.icloud.com.cn:443

    在抓包的时候,有时候苹果手机在重启后频繁出现gateway.icloud.com.cn:443请求 这种情况需要在手机上进行设置,适用于IOS16.0以上版本,其他版本不清楚,没有尝试过 进入  设置--点击AppleID ,进入个人信息页面---点击iCloud 拉倒底部,关闭  在网页上访问iCloud数据, 这时就没有频

    2024年02月11日
    浏览(73)
  • 【Blog】记录一下如何让自己的自建网站让百度搜索收录

    前端时间博主自己搭建了一个自己的Blog网站,并且已经部署到服务器上面了,感兴趣的小伙伴可以点击访问一下: 依琴の小站 。本站会长期维护,并且时不时会更新一些新的内容。 我们自己建站,相信很多人也都会遇到过,自己写的一些文章并不能被百度进行收录,导致可

    2024年02月01日
    浏览(96)
  • Win7系统IE、搜狗等浏览器首页被恶意网址qq789.com.cn劫持……

    刚才,一位朋友的Windows7 电脑中IE、搜狗等浏览器首页被qq789.com.cn劫持,请我通过QQ远程协助帮忙解决。  右击朋友电脑桌面上的Internet Explorer图标,从弹出的菜单中选择“属性”,弹出的“Internet 属性”窗口是这样的: 看起来很奇怪,也很别扭,看起来Internet选项的一些功能

    2024年02月05日
    浏览(70)
  • 【Linux】fdisk命令参数详解(图文超详细,内容来自官方文档)

    目录 0.环境 1.背景 2.内容--官方文档对fdisk的介绍 1)名称 2)说明  3)具体参数/选项 4)举个栗子,我要查fdisk的版本 windows + linux虚拟机 之前发表了一篇文章Linux 用fdisk进行磁盘分区(图文过程),里面用到了fdisk命令来给磁盘分区,用到了很多fdisk的内置命令。 今天(2023

    2024年02月11日
    浏览(45)
  • 探秘Steem-CN:一个基于区块链的内容社区平台

    项目地址:https://gitcode.com/tongxiaofeng/steem-cn 在数字化时代,内容创作与分享的重要性不言而喻,而Steem-CN正是这样一个以区块链技术为基础的去中心化内容社区平台。它鼓励用户创造有价值的内容,并通过独特的经济激励机制,将创作者和读者紧密连接在一起。 Steem-CN是一个基

    2024年04月25日
    浏览(31)
  • ubuntu 22.04 apt-get 安装软件报错:Temporary failure resolving ‘cn.archive.ubuntu.com‘

    Err:1 http://cn.archive.ubuntu.com/ubuntu jammy/main amd64 libtcl8.6 amd64 8.6.12+dfsg-1build1 Temporary failure resolving ‘cn.archive.ubuntu.com’ Err:2 http://cn.archive.ubuntu.com/ubuntu jammy/main amd64 tcl8.6 amd64 8.6.12+dfsg-1build1 Temporary failure resolving ‘cn.archive.ubuntu.com’ Err:3 http://cn.archive.ubuntu.com/ubuntu jammy/universe amd6

    2024年04月10日
    浏览(64)
  • cn.hutool.http.HttpException: Connection reset 问题解决

    项目A给项目B接口发送数据; 项目使用的是hutool的http工具类; 本地、测试环境均正常,生产出现了错误,明细: 生产环境接口测试没有问题; 在服务器同样可以ping通生产环境,排除白名单问题; 使用 timeout() 设置的超时时间,同样也记录了方法调用时间,均没有问题,并

    2024年02月13日
    浏览(46)
  • HttpClient报错cn.hutool.http.HttpException: Read timed out

    这个错误出现是一个项目更新以后的出现的这个问题,错误的代码如下: 这里解释一下,因为项目使用了hutool这个工具包,并且http请求也是用的hutool包中的HttpRequest,但是其实hutool中的HttpRequest是对httpClient做了封装本质上也是HttpClient报的错 接下来说一下原因:需求是这样的

    2024年02月02日
    浏览(110)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包