物联网项目架构

时间:2018-12-06 01:40:59

标签: architecture mqtt iot

我正在使用MQTT协议和javascript构建IoT项目

它从MQTT客户端读取数据并将数据发送到代理,使用javascript构建的api引擎-图像中的虚线区域,内置了MQTT客户端并监听代理。

在本地环境中,我可以很好地运行代理并可以通过api引擎与其进行通信,但是在生产环境中,我不知道如何以及在何处安装代理和api引擎。

我的猜测是我将代理安装在MQTT代理云之一(即cloudmqtt.com)上,然后将api引擎部署到Heroku或其他东西,并使api引擎中的MQTT客户端指向MQTT代理云以侦听。

希望有人可以给我一些建议。 (我还不能嵌入图像,所以这里是一个链接) architecture

3 个答案:

答案 0 :(得分:0)

我使用CloudMQTT Heroku add-on为我的应用程序使用Heroku构建了具有非常相似的体系结构的产品。

使用CloudMQTT时,您将获得“作为服务”的MQTT代理。因此,您无需在任何地方“安装” MQTT代理。您只需为MQTT客户端(在IOT设备/集线器和API后端中)配备适当的访问凭据即可发布/订阅您的CloudMQTT实例。

答案 1 :(得分:0)

这是我对体系结构的建议。

您正在构建的管理器应用程序应始终是代理的一部分。经理应该是经纪人的客户。通过这种方法,您将可以更好地控制设备。

  1. 您应该允许您的代理将数据存储到数据库/大数据引擎中。或您的应用程序应该通过集成方法调用从代理接收数据,并对其进行处理并将其存储在后端。
  2. 如果要将应用程序和代理作为两个独立的组件运行,则应用应将Broker存储到DB的数据读取,然后进行处理。从应用程序到Broker的写入应该通过REST调用而不是MQTT进行,以实现更好的控制。
  3. 您的移动应用程序/ Web应用程序应通过HTTP / HTPS连接到您的应用程序。在少数情况下,对于在浏览器上动态加载数据,您可以使用MQTT,但是对于商业情况,您可能需要先处理数据,然后再将其转到用户界面,我们建议您通过Websocket从应用程序服务器推送处理后的数据。

我们对所有客户的建议是仅将MQTT用于边缘设备以进行Broker通信,而将REST用于其他所有内容。

Ranjith

Bevywise网络

答案 2 :(得分:0)

您可以通过两种不同的方式运行Mosca mqtt代理:1.独立模式或以2.嵌入到javascript应用程序中。这意味着,当您部署Nodejs API引擎时,它会与Mosca mqtt代理一起运行。在后一种情况下,您不必单独使用cloudmqtt。

因此,一旦您继续使用mqtt-client将设备中的数据发布到Mosca代理,就可以从中介计费服务器和其他应用程序进行订阅。使用数据库,您可以利用获利和控制数据,而mqtt pub-sub可以根据实现的QoS处理IoT遥测数据。