使用 MQTT 从 Web 应用程序向我的 Raspberry PI 发送消息

Send message to my Raspberry PI from web app using MQTT

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

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

MQTT 遵循 pub-sub 消息传递模式。你只需要在一端(两端)有代理。

选项 1:
有一个代理服务器 运行ning 连同你的网络应用程序和 publish 消息关于 mqtt 客户端(运行ning 在 raspberry pi 上)将订阅的主题

选项 2:
如果 raspberry pi 是唯一一个静态设备,则只有 运行 一个代理(MQTT 服务器)和 publish 来自网络服务的消息

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

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

更新: 我用了一个误导性的句子 not well established。我的意思不是简单的 out-of-the-protocol MQTT 安全(类似于 mqtts)
我明白这不是一个正确的陈述。选项是:

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

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