【发布时间】:2017-01-22 13:05:33
【问题描述】:
我想使用 MQTT 从 Web 应用程序向我的 Raspberry PI 发送消息。哪项服务可以做同样的事情?需要两端都安装mqtt broker吗?
【问题讨论】:
-
您只需要一个可以在发送方或接收方或其他地方运行的代理。您从哪里发送消息?
标签: python node.js raspberry-pi mqtt iot
我想使用 MQTT 从 Web 应用程序向我的 Raspberry PI 发送消息。哪项服务可以做同样的事情?需要两端都安装mqtt broker吗?
【问题讨论】:
标签: python node.js raspberry-pi mqtt iot
就使用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)
我明白这不是一个正确的说法。选项有:
只有在发布不频繁且有效负载不大的情况下,websockets 才有用。
【讨论】: