【问题标题】:Python (Flask) and MQTT listeningPython (Flask) 和 MQTT 监听
【发布时间】:2016-07-18 12:12:27
【问题描述】:

我目前正在尝试让我的 Python (Flask) 网络服务器显示我的 MQTT 脚本正在做什么。 MQTT 脚本,本质上,它订阅了一个主题,我真的很想对它获得的信息进行分类并实时显示/更新它。类似于显示定期更新的各种设置的简单列表。

Setting1 = 9
Setting2 = 2
Setting3 = 5

首先,我有一个连接页面,以便您可以填写 Python (Flask) 应连接到的 IP:

@app.route("/")
def my_form():
        return render_template("connect.html")

@app.route("/", methods=["POST"])
def my_form_post():
        text = request.form["text"]
        processed_text = text.upper()

connect.html 的样子:

<!DOCTYPE html>
<html lang="en">
<body>
    <h2>Fill in the IP in below:</h2>
    <form action="." method="POST">
        <input type="text" name="text">
        <input type="submit" name="my-form" value="Connect">
    </form>
</body>
</html>

连接到 MQTT 部分是棘手的部分,我需要一些帮助。我想只在下面添加连接,但这不能正常工作,它只会返回内部服务器错误。

任何帮助将不胜感激!

谢谢!

【问题讨论】:

  • 假设您设法连接到代理,您打算如何使用已发布消息中的值更新任何页面?使用 MQTT over Websockets 做所有页面方面你可能会做得更好

标签: python flask mqtt


【解决方案1】:

我将为 MQTT 消息处理提供单独的服务。该服务可以处理接收到的消息并将它们存储(数据库、redis、简单的程序内存)以供访问。

当您的烧瓶应用程序中的页面被点击时,您将连接到服务(或其存储)并处理/显示自上次请求以来的信息。

这可以反过来完成,也可以将您的信息从烧瓶应用程序发布到后端服务以发送 MQTT 消息。

【讨论】:

  • 我将如何制作这项单独的服务?
  • 一个单独的服务只是另一个在后台运行的接受某种通信的python应用程序。该通信可以是基于 ip(tcp 或 udp)的,也可以是基于某种其他类型的进程间通信方法的事件。由于在这种情况下您需要 MQTT 服务,因此我会根据该协议将其设为事件,而 IMO 我会将信息临时存储在 redis 应用程序中。这样,flask 应用程序将访问 redis 以获取其当前信息/消息,后端服务将访问您的 mqtt 后端以将它们存储在 redis 中。
【解决方案2】:

试试这个:http://flask-mqtt.readthedocs.io/en/latest/#,a Flask 扩展,旨在促进将 MQTT 客户端集成到您的 Web 应用程序中

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-11
    • 1970-01-01
    • 1970-01-01
    • 2022-01-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多