实施也能够为网站提供服务的 MQTT 服务器
implementing an MQTT server capable of serving a website too
简短问题: 我如何在远程 Ubuntu 16 服务器上托管 MQTT 服务器,同时托管将使用 MQTT 的 HTTP 服务器数据?
正确的问题:我想构建一个由 ESP32 监控和控制的物联网系统,它将分别从远程服务器发送反馈和接受命令(也许 LAMP?)。我还希望用户登录此远程服务器上托管的网站,其中 s/he 可以监控任何传感器值或发送命令(例如打开或关闭 LED)。
那么到这里怎么走呢?
有人建议我使用 MQTT,但后来出现了上述问题。
我的发现:我发现使用 Mosquitto MQTT,我可以使用 websockets 为网站提供服务。但我更喜欢更具可扩展性的 HTTPS 方法。也就是说,我打算将一个数据库链接到我的站点和 运行 我的 PHP 脚本。
我不是那么有经验,所以请不要想当然:)
您真的不应该考虑将 MQTT 代理与 HTTP 服务器结合使用,特别是如果您打算将 HTTP 服务器实际用作应用程序服务器(运行 后端逻辑,例如 PHP) .这是两个完全独立的系统。没有什么可以阻止您的应用程序逻辑作为客户端连接到代理。
如果你打算在 WebSockets 上使用 MQTT,你可以使用一些东西 link nginx 来代理 WebSockets 连接到代理,这样它就可以位于相同的逻辑 HTTP/HTTPS 地址后面。
MQTT 使用 TCP 连接并遵循 publish/subscribe API 模型,其中 web(http) 遵循 Restful API 模型(创建、读取、更新、删除) .如果您想坚持使用 MQTT,那么您应该使用 SAAS 服务,例如来自 HIVE 的企业 MQTT,它提供了这种可集成性,但会收取一些费用,并且在 return 中,他们会为您提供一个帐户和一个仪表板,用于你所有的设备。否则,您可以尝试制作自己的可以将 MQTT 与 Web 服务集成的中间件。
我推荐的另一件事是 CoAP,它也是 M2M 协议,但遵循 Restful API 模型和 UDP 连接。它有直接转发代理将 coap 数据包转换为 https 数据包,反之亦然。
在 MQTT 中,您有一个中央服务器(代理),节点将数据发送到该服务器并通过 topic filters
获取所需的数据。
在 CoAP 中,每个有一些数据要共享的设备都成为服务器,而对其数据感兴趣的其他设备成为客户端,并向各自的服务器发送 GET
请求以获取其数据。类似地,来自客户端的 PUT
请求和有效载荷将更新服务器上的值。
简短问题: 我如何在远程 Ubuntu 16 服务器上托管 MQTT 服务器,同时托管将使用 MQTT 的 HTTP 服务器数据?
正确的问题:我想构建一个由 ESP32 监控和控制的物联网系统,它将分别从远程服务器发送反馈和接受命令(也许 LAMP?)。我还希望用户登录此远程服务器上托管的网站,其中 s/he 可以监控任何传感器值或发送命令(例如打开或关闭 LED)。 那么到这里怎么走呢?
有人建议我使用 MQTT,但后来出现了上述问题。
我的发现:我发现使用 Mosquitto MQTT,我可以使用 websockets 为网站提供服务。但我更喜欢更具可扩展性的 HTTPS 方法。也就是说,我打算将一个数据库链接到我的站点和 运行 我的 PHP 脚本。
我不是那么有经验,所以请不要想当然:)
您真的不应该考虑将 MQTT 代理与 HTTP 服务器结合使用,特别是如果您打算将 HTTP 服务器实际用作应用程序服务器(运行 后端逻辑,例如 PHP) .这是两个完全独立的系统。没有什么可以阻止您的应用程序逻辑作为客户端连接到代理。
如果你打算在 WebSockets 上使用 MQTT,你可以使用一些东西 link nginx 来代理 WebSockets 连接到代理,这样它就可以位于相同的逻辑 HTTP/HTTPS 地址后面。
MQTT 使用 TCP 连接并遵循 publish/subscribe API 模型,其中 web(http) 遵循 Restful API 模型(创建、读取、更新、删除) .如果您想坚持使用 MQTT,那么您应该使用 SAAS 服务,例如来自 HIVE 的企业 MQTT,它提供了这种可集成性,但会收取一些费用,并且在 return 中,他们会为您提供一个帐户和一个仪表板,用于你所有的设备。否则,您可以尝试制作自己的可以将 MQTT 与 Web 服务集成的中间件。
我推荐的另一件事是 CoAP,它也是 M2M 协议,但遵循 Restful API 模型和 UDP 连接。它有直接转发代理将 coap 数据包转换为 https 数据包,反之亦然。
在 MQTT 中,您有一个中央服务器(代理),节点将数据发送到该服务器并通过 topic filters
获取所需的数据。
在 CoAP 中,每个有一些数据要共享的设备都成为服务器,而对其数据感兴趣的其他设备成为客户端,并向各自的服务器发送 GET
请求以获取其数据。类似地,来自客户端的 PUT
请求和有效载荷将更新服务器上的值。