umqtt
– a simple MQTT client
umqtt 是 MicroPython 的简单 MQTT 客户端。(请注意,它使用了一些MicroPython 快捷方式,不适用于 CPython )。
支持的 MQTT 功能
发布和订阅均支持 QoS 0 和 1。 不支持 QoS2 以保持较小的代码大小。 除了 ClientID 之外,目前仅支持“clean session”参数进行连接。
设计要求
内存效率。
避免臭名昭著的设计反模式,例如“回调地狱”。
通过单个客户端对象支持发布和订阅(另一种选择是使用单独的客户端类来进行发布和订阅)。
具有自动重新连接功能的 MQTT 客户端
有一个单独的 umqtt.robust 模块,它构建在 umqtt.simple 之上,并在出现网络错误时添加自动重新连接支持。请参阅其 documentation 了解更多详细信息。
带有 SSL 文件的 MQTT 客户端
有一个单独的 umqtt.default 模块,它构建在 umqtt.robust 之上,并且支持 SSL 证书以文件方式传入并为每一个订阅主题设置回调传递。请参阅其 documentation 了解更多详细信息。
API设计
基于上述需求, API 具有以下特征:
所有与 MQTT 消息相关的数据都编码为字节。这包括消息内容和主题名称(即使 MQTT 规范
订阅的消息通过回调传递。这是为了避免对订阅的消息使用队列,否则它们可能会随时收到(
Usage Model:
# uiflow2 uses this class by default
from umqtt import MQTTClient
# If you want to use the `umqtt.default` module, go this way.
from umqtt.simple import MQTTClient
# If you want to use the `umqtt.robust` module, go this way.
from umqtt.robust import MQTTClient