首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MQTT与Socket.IO在网络带宽使用上的比较

MQTT与Socket.IO在网络带宽使用上的比较
EN

Stack Overflow用户
提问于 2019-03-04 18:42:17
回答 1查看 12.4K关注 0票数 4

我需要解决上游的很多数据每秒钟。通过无线(WiFi)或乙烯网络每秒200 200kBytes。

我选择了MQTT,因为对于与需要少量代码占用的远程位置的连接很有用,而且/或网络带宽是非常高的。

MQTT在网络带宽的使用上比Socket.io更好?或者,MQTT是一个很好的实时上传/发布解决方案。MQTT可用于与socket.io(WebSocket)相同的绘图系统。

EN

回答 1

Stack Overflow用户

发布于 2019-03-05 20:23:43

Socket.io 一次做几件事.这个答案集中在您关于底层协议WebSockets的说明上,当然您可以使用那些没有Socket.io的协议。

WebSockets与MQTT是一种从苹果到篮子的比较,因为每一种都可以在没有另一个或一起工作的情况下工作。MQTT可以作为HTTP的替代方案单独工作。WebSockets是HTTP之上的附加协议,可以保持长时间运行的连接处于打开状态,这样就可以在长时间内发送消息流,而不必为每个请求建立新的连接。这种连接可以携带MQTT,或者像JSON对象那样的非MQTT数据,并且可以提供一个可靠的双向链接,其消息按顺序到达。

由于不同的原因,MQTT的开销也较小:它使用发布-订阅模型(Publish)进行设计,并优化用于通过狭窄、缓慢或不可靠的连接传递数据。尽管它忽略了与HTTP消息一起出现的许多报头,以支持几个编码密集的字节 ( 真正的区别在于交货的速度 )。对于受约束的嵌入式设备来说,这是一个最重要的选择,尽管它们通常是发送小消息,并试图节省数据/处理/电源。

所以他们有不同的优势,甚至可以结合在一起。MQTT-via-WebSockets是使用MQTT 在一个webapp应用程序中的一种常见方法,尽管普通MQTT在低端设备中是标准的(无论如何发送这么多数据可能很困难)。我建议MQTT从设备发送到服务器,或者WebSockets-MQTT用于在浏览器中快速接收设备数据或确保以高速率发送消息的顺序。一个重要的例外是流--只有关于MQTT的孤立报告,而Socket.io则将其报告为顶级功能。平衡将取决于你在两端都有什么样的系统,以及涉及到什么样的图表。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54989567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档