MQTT与Socket.IO对网络带宽使用的影响

MQTT与Socket.IO对网络带宽使用的影响,socket.io,mqtt,Socket.io,Mqtt,我每秒钟需要很多数据。 通过无线(WiFi)或以太网每秒200KB 我之所以选择MQTT,是因为它对于需要较小代码占用和/或网络带宽较高的远程位置的连接非常有用。 MQTT在网络带宽使用方面优于Socket.io? 或者,MQTT是实时上传/发布的好解决方案。 MQTT可用于绘制与socket.io(WebSocket)相同的系统图表。socket.io。这个答案集中在您对底层协议WebSockets的注释上,当然您也可以使用没有Socket.io的协议 WebSocket与MQTT是一个苹果对

我每秒钟需要很多数据。 通过无线(WiFi)或以太网每秒200KB

我之所以选择MQTT,是因为它对于需要较小代码占用和/或网络带宽较高的远程位置的连接非常有用。

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

socket.io。这个答案集中在您对底层协议WebSockets的注释上,当然您也可以使用没有Socket.io的协议

WebSocket与MQTT是一个苹果对篮子的比较,因为它们在不同的层上运行。WebSockets是较低的,它可以保持一个长时间运行的连接打开,这样就可以长时间发送消息流,而无需为每个请求建立新的连接。它可以同时携带HTTP和MQTT

出于不同的原因,MQTT的开销也较小:它使用发布-订阅模型(Pub-Sub-model)进行设计,并针对通过狭窄、缓慢或不可靠的连接交付数据进行优化。虽然它省略了HTTP消息附带的许多头,但支持。这是受限嵌入式设备的首选,尽管它们通常发送小消息并试图节省数据/处理/电源

因此,它们有不同的优势,甚至可以结合起来。通过WebSockets的MQTT是使用MQTT的常用方法,尽管普通MQTT在低端设备中是标准的(无论如何,发送这么多数据可能很困难)。我建议MQTT用于从设备发送到服务器,或者WebSockets MQTT用于在浏览器中快速接收设备数据。一个重要的例外是流式传输——只有通过MQTT的独立报告,而Socket.io将其报告为顶级功能。平衡将取决于两端的系统以及所涉及的图表类型。

Socket.io。这个答案集中在您对底层协议WebSockets的注释上,当然您也可以使用没有Socket.io的协议

WebSocket与MQTT是一个苹果对篮子的比较,因为它们在不同的层上运行。WebSockets是较低的,它可以保持一个长时间运行的连接打开,这样就可以长时间发送消息流,而无需为每个请求建立新的连接。它可以同时携带HTTP和MQTT

出于不同的原因,MQTT的开销也较小:它使用发布-订阅模型(Pub-Sub-model)进行设计,并针对通过狭窄、缓慢或不可靠的连接交付数据进行优化。虽然它省略了HTTP消息附带的许多头,但支持。这是受限嵌入式设备的首选,尽管它们通常发送小消息并试图节省数据/处理/电源


因此,它们有不同的优势,甚至可以结合起来。通过WebSockets的MQTT是使用MQTT的常用方法,尽管普通MQTT在低端设备中是标准的(无论如何,发送这么多数据可能很困难)。我建议MQTT用于从设备发送到服务器,或者WebSockets MQTT用于在浏览器中快速接收设备数据。一个重要的例外是流式传输——只有通过MQTT的独立报告,而Socket.io将其报告为顶级功能。平衡将取决于两端的系统以及所涉及的图表类型。

Sure thing@DarrellSheley!它是否回答了您的问题,或者您希望得到进一步的解释?谢谢您的帮助。因此,我无法在网络带宽使用率方面比较MQTT和Socket?如果您准确定义了要发送的内容,您可以对它们进行比较,例如“使用身份验证和加密Socket.io在加密MQTT上发送大小为Y的X条消息”。我没有关于结果的现成信息,这个答案主要解释了技术,因此您可以确定您的需求并提出一个测试用例。如果我想在慢速互联网网络(约100kbps)上发送最大重量为5kb的消息,并且同时发送约500-100条消息,该怎么办。实现此通道的最佳方式是什么。socket.io+mqtt在这种情况下会有帮助吗?如果是,是否有关于此类应用程序实现的博客或某种在线内容?@iniravpatel基于您的单位,假设您的意思是5千位。MQTT是一个非常好的协议。如果您的意思是1000条消息,那么这将需要高达5kb*1000s/100kbps=50s的时间才能通过,因此您可能需要考虑更紧凑的传输—没有压缩,任何协议都无法弥补带宽的不足。如果你的意思是千字节,那就糟糕了8倍,你真的需要重新评估这个项目!它是否回答了您的问题,或者您希望得到进一步的解释?谢谢您的帮助。因此,我无法在网络带宽使用率方面比较MQTT和Socket?如果您准确定义了要发送的内容,您可以对它们进行比较,例如“使用身份验证和加密Socket.io在加密MQTT上发送大小为Y的X条消息”。我没有关于结果的现成信息,这个答案主要解释了技术,因此您可以确定您的需求并提出一个测试用例。如果我想在慢速互联网网络(约100kbps)上发送最大重量为5kb的消息,并且同时发送约500-100条消息,该怎么办。实现此通道的最佳方式是什么。socket.io+mqtt在这种情况下会有帮助吗?如果是,是否有关于此类应用程序实现的博客或某种在线内容?@iniravpatel基于您的单位,假设您的意思是5千位。MQTT是一个非常好的协议。如果您的意思是1000条消息,那么这将需要高达5kb*1000s/100kbps的速度