【问题标题】:Send message to my Raspberry PI from web app using MQTT使用 MQTT 从 Web 应用程序向我的 Raspberry PI 发送消息
【发布时间】:2017-01-22 13:05:33
【问题描述】:

我想使用 MQTT 从 Web 应用程序向我的 Raspberry PI 发送消息。哪项服务可以做同样的事情?需要两端都安装mqtt broker吗?

【问题讨论】:

  • 您只需要一个可以在发送方或接收方或其他地方运行的代理。您从哪里发送消息?

标签: python node.js raspberry-pi mqtt iot


【解决方案1】:

就使用node.js而言,有一个轻量级的mqtt服务器mosca(http://mosca.io)和客户端MQTT js(https://github.com/mqttjs/MQTT.js

MQTT 遵循发布-订阅消息模式。您只需要在一端(任一端)都有代理。

选项 1:
让代理服务器与您的 web 应用程序一起运行,并在 mqtt 客户端(在树莓派上运行)将订阅的主题上发送 publish 消息

选项 2:
如果树莓派是唯一一个静态设备,只需在其上运行一个代理(MQTT 服务器)和来自网络服务的publish 消息

备选方案:
如果您的消息不需要极高的吞吐量,只需使用 websockets。尽管 Websocket 不如 MQTT(轻量级协议)快,但它提供了良好的双向通信,尤其是当您的任何组件附加到或依赖于 http 接口时。

实际上MQTT的安全机制在M2M通信中并没有很好的建立,而websockets遵循http安全机制(TLS加密)

更新: 我使用了一个误导性的句子not well established。我的意思不是简单的超出协议的 MQTT 安全性(类似于 mqtts)
我明白这不是一个正确的说法。选项有:

  1. 通过预共享证书使用底层 TCP 安全性 (SSL)。如果有许多设备和证书续订或
  2. ,这会很痛苦
  3. 使用会损害主题、qos 等元数据的应用程序级安全性。

只有在发布不频繁且有效负载不大的情况下,websockets 才有用。

【讨论】:

  • 您好,您能否提供一个关于“MQTT 的安全机制在 M2M 中没有很好建立”的参考资料
  • 我会引导你进入这个话题。检查有效负载加密的优点和缺点。主要问题是密钥交换必须手动完成,因此客户端上的密钥库安全成为一个重要问题。此外,由于 MQTT 协议完全是由 qos 驱动的主题,因此无法加密元数据,这对于通过 Internet 进行通信是不安全的。我正在为我们的客户实施 IOT 解决方案,我们使用带曲线加密的 zeromq 而不是 MQTT hivemq.com/blog/mqtt-security-fundamentals-payload-encryption
猜你喜欢
  • 1970-01-01
  • 2013-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-25
  • 2015-11-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多