Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我是 web 和 mqtt 编程的菜鸟,我正在开发一个使用 mqtt(通过 hivemq 或 rabbitmq 代理)的 python 应用程序,并且还需要为客户端实现 http rest api。
我意识到使用 python bottle 框架很容易提供一个简单的 http 服务器,但是 bottle 和 mqtt 都有它们的事件循环,我如何结合这两个事件循环,我想要一个单线程的应用程序来避免复杂性。
run()我不熟悉瓶子,但快速浏览一下文档,除了函数之外,似乎没有其他方法可以启动它的事件循环。
run()
Paho 提供了一个loop_start()启动它自己的后台线程来运行 MQTT 网络事件循环的方法。
loop_start()
鉴于似乎无法手动运行瓶子循环,我建议loop_start()在之前调用run()并让应用程序在 2 个单独的线程上运行,因为没有办法将它们组合起来,而且您可能也不想这样做。
唯一需要注意的是 MQTT 订阅是否更新了 REST 服务发送的数据,但只要不是流式传输不太可能成为问题的大量数据。