文档结构  
翻译进度:已翻译     翻译赏金:0 元 (?)    ¥ 我要打赏

MQTT 要点: MQTT 在 WebSockets

mqttessentials_special_ws

欢迎来到MQTT要点,这是关于MQTT协议的核心功能和概念的博客系列。在前面十篇文章中涵盖了MQTT的所有重要方面和特点,在这补充的一章中我们将介绍如何在浏览器中使用所有这些功能,以及它的好处。

MQTT over WebSockets. 

我们已经在MQTT 要点中了解到,MQTT是受限设备和不可靠网络的理想选择。它也非常适用于以非常低的开销发送消息。在手机的浏览器或一般的浏览器中直接发送和接收MQTT消息是非常好的。MQTT可以通过WebSockets实现。它使浏览器能够利用所有MQTT功能,这可以用于以下示例:

  • 从设备或传感器显示实时信息
  • 接收推送通知,例如,如果有警报或危急条件
  • 使用LWT和保留的消息查看设备的当前状态
  • 与移动Web应用程序高效沟通

从技术的角度来看,这是什么意思?

支持WebSockets的每个现代浏览器都可以是具有MQTT要点中描述的所有功能的完整的MQTT客户端功能。诸如Keep Alive,Last Will and Testament,Quality of Service and Retained Messages的工作方式与本机MQTT相同我们唯一需要的是通过WebSockets启用MQTT的JavaScript库。我们还需要一个通过webSockets支持MQTT的代理,当然HiveMQ可以很容易做到。

第 1 段(可获 3.31 积分)

它是如何工作的呢?

WebSocket是一个网络协议,它提供了一个浏览器和web服务器之间的双向通信。 它在2011年被标准化,所有现代浏览器都支持内置的WebSockets。与MQTT类似,WebSockets基于TCP。

websockets

当通过WebSockets使用标准MQTT时,这意味着当通过网络传输时,MQTT消息(例如CONNECT或PUBLISH)由一个或多个WebSocket框架封装。WebSockets适合作为MQTT的传输,因为通信是双向的,有序的和无损的(这本质上是因为WebSockets还利用TCP)。为了通过WebSockets与MQTT代理进行通信,代理必须能够处理本地WebSockets。勇敢的人也可以使用Web服务器并将WebSockets桥接到MQTT代理, 不过我们不推荐这个。使用HiveMQ开始使用WebSockets非常简单,只需在配置中启用本机支持。

为什么不直接使用MQTT呢?

目前在浏览器中不可能使用纯MQTT,因为没有可以打开一个原始的TCP连接 ,这最终会随着Socket API而改变,但目前只有少数几个浏览器实现了这个API。

第 2 段(可获 2.76 积分)

开始

如果你想通过WebSockets开始使用MQTT,你应该检查一些好的资源:

  • 我们有一个MQTT WebSocket客户端,它是测试,测试和调试的理想选择。它使用MQTT仪表盘的公共代理作为默认代理。该博文中详细记录了客户端的所有功能。源代码也可以在GitHub上找到。(源码)
  • 还有一篇博客文章,介绍如何构建自己的MQTT WebSockets客户端的分步指南。如果您想在现有的Web应用程序中集成MQTT,那么这个方法有点不太理想。()
  • 如果你想设置自己的代理与WebSockets的支持,看看这个帖子。()

安全的WebSockets

也可以通过利用TLS对安全的Websockets进行整个连接的加密。如果您很难开始使用安全的WebSockets。HiveMQ控可以无缝对接,在我们的支持论坛中有一些很好的解释(后期考虑翻译,分享给大家)

那么这就是MQTT 要点系列的结尾。我们希望你喜欢它。不过不用担心,MQTT相关内容讲解我们将继续下去。

第 3 段(可获 2.71 积分)

周末快乐,希望能在下一期的 MQTT Monday 看到你!

如果你想要阅读更多 MQTT 相关的博客,可以注册邮件通讯列表,这样可在新文章发布时收到通知。如果你更喜欢 RSS,可以订阅我们的 RSS 内容

第 4 段(可获 0.7 积分)

文章评论