MQTT与WebSocket相比,有哪些优点?
我正在考虑在我的项目中使用MQTT,因此我想知道为什么有些人选择使用MQTT而不是直接使用MQTT。
如果您打算直接在Web应用程序(页面内)中发布/订阅消息,则只需要使用MQTT通过Websockets运行。
基本上,我会为所有内容都运行纯MQTT,只有在确实需要时才添加Websockets。
对于所有非浏览器语言,MQTT客户端库只使用本地MQTT协议。 对于JavaScript,有一个纯MQTT库和使用Websockets的Paho In-Page库。
编辑:防火墙隧道使用情况是使用MQTT通过Websockets的有效原因,并且自回答撰写以来,更多非Web/JavaScript客户端库已添加了支持。
MQTT是一种协议,支持以下操作:
根据设备的不同,可以使用相应的实现。
浏览器:它使用WebSocket。 WebSocket为浏览器提供了建立全双工通信的能力。有JavaScript库实现MQTT功能,请参见Eclipse Paho JavaScript Client
Android:有用于Android应用程序开发的Java编写的MQTT客户端库。请参见Eclipse Paho Android Service
因此,这取决于将使用此功能的设备。有关标准和规范,请访问MQTT Version 5.0
希望这有所帮助。
干杯!
如果某个网页是MQTT客户端的发送或接收者,那么通过Websockets传输MQTT非常理想。
有关MQTT over Websockets的功能概述可以在这里找到:这里。
如果应用程序运行在只允许443和80流量的防火墙后面,并且您无法控制防火墙的策略,那么通过Web套接字传输MQTT也是有帮助的。
MQTT Broker:
MQTT经纪人是MQTT客户端的对应物。经纪人是任何发布/订阅协议的核心。根据实现方式,经纪人可以处理高达数千个并发连接的MQTT客户端。
MQTT Client: 当我们谈论客户端时,几乎总是指MQTT客户端。发布者和订阅者都是MQTT客户端。发布者和订阅者标签是指客户端当前是发布消息还是订阅消息(发布和订阅功能也可以在同一个MQTT客户端中实现)。
WebSocket: 我们已经学习到MQTT非常适合受限设备和不可靠网络。它也非常适合以非常低的开销发送消息。直接在手机浏览器或其他浏览器中发送和接收MQTT消息会非常方便。这可以通过MQTT over WebSockets实现。
您可以使用第三方协议。PAHO、EMQTT、VerneMQ。