MQTT vs socket.io在网络带宽使用情况下



我需要每秒上游大量数据解决方案。通过无线(WiFi)或Ethenet每秒200kbytes。

我选择了MQTT,因为它对于需要小型代码足迹和/或网络带宽的连接很有用。

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

socket.io一次做几件事。该答案重点介绍您有关基础协议Websockets的注释,尽管您当然可以使用没有socket.io的那些。

WebSockets vs. MQTT是一种苹果到篮子的比较,因为每个人都可以在没有另一个或在一起的情况下工作。MQTT可以单独工作,以替代HTTP。WebSockets是HTTP之上的附加协议,可以保持长期运行的连接打开,因此可以在很长一段时间内发送消息流,而无需为每个消息设置新连接要求。该连接可以携带MQTT或JSON对象(例如JSON对象)的非MQTT数据,并且具有提供可靠的双向链接的好处。

MQTT的开销也较少,原因不同:它是使用 Publish-subscribe模型(Pub-Sub模型)设计的,并优化用于通过狭窄,缓慢或不可靠的连接传递数据。尽管它省略了许多伴随HTTP消息的标题,而支持一些密集编码的字节,但真正的区别在于交付速度。受约束嵌入式设备的最佳选择,尽管它们通常是在发送小消息并试图保存数据/处理/功率。

因此,它们具有不同的优势,甚至可以组合。MQTT-VIA-WEBOCKOCKET是在WebApp中使用MQTT的常见方法,尽管普通MQTT是低端设备中的常态(无论如何,这可能很难发送这么多数据)。我建议MQTT用于从设备发送到服务器,或Websockets-MQTT,用于快速接收浏览器中的设备数据或确保以高速率发送的消息顺序。流媒体的一个重要例外是 - 仅通过MQTT进行了隔离报告,而Socket.io将其报告为最佳功能。平衡将取决于您两端的系统以及涉及哪种图表。

最新更新