我需要解决上游的很多数据每秒钟。通过无线(WiFi)或乙烯网络每秒200 200kBytes。
我选择了MQTT,因为对于与需要少量代码占用的远程位置的连接很有用,而且/或网络带宽是非常高的。
MQTT在网络带宽的使用上比Socket.io更好?或者,MQTT是一个很好的实时上传/发布解决方案。MQTT可用于与socket.io(WebSocket)相同的绘图系统。
发布于 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则将其报告为顶级功能。平衡将取决于你在两端都有什么样的系统,以及涉及到什么样的图表。
https://stackoverflow.com/questions/54989567
复制相似问题