umqtt.default
umqtt.default 重写了 subscribe() 方法并支持 ca 文件。
Micropython Example:
import umqtt
c = umqtt.MQTTClient(
"umqtt_client",
"emqxsl.cn",
port=8883, user='test', password='test', keepalive=60,
ssl=True,
ssl_params={"cert": "/flash/certificate/emqxsl-ca.crt", "server_hostname": "emqxsl.cn"}
)
def on_sub_cb(data):
print("topic:", data[0])
print("msg:", data[1])
if not c.connect(clean_session=True):
print("New session being set up")
c.subscribe(b"testtopic", on_sub_cb)
while True:
c.wait_msg()
UIFLOW2 Example:
Constructors
- class umqtt.MQTTClient(client_id, server, port=0, user=None, password=None, keepalive=0, ssl=False, ssl_params={}) None
创建 MQTTClient 对象。
- 参数:
client_id (str) – 连接到MQTT broker时使用的唯一客户端 ID 字符串。
server (str) – 远程MQTT broker的主机名或 IP 地址。
port (int) – 要连接的服务器主机的网络端口。
user (str or None) – 用于MQTT broker身份验证的用户名。
password (str or None) – 用于MQTT broker身份验证的密码。
keepalive (int) – 与代理通信之间允许的最长时间(以秒为单位)。如果没有交换其 他消息,这将控制客户端向代理发送 ping 消息的速率。
ssl (bool) – 是否使用ssl。
ssl_params (dict) – 启动 ssl 连接所需的一些参数。
- 返回:
MQTTClient 对象
- 返回类型:
UIFLOW2:
Methods
- MQTTClient.connect(clean_session=True) bool
连接到服务器。如果此连接使用存储在服务器上的持久会话,则返回 True (如果使用 clean_session=True 参数(默认),则始终为 False )。
UIFLOW2:
- MQTTClient.ping() None
Ping 服务器(响应由
wait_msg()自动处理)。UIFLOW2:
None
- MQTTClient.subscribe(topic, handler, qos=0) None
订阅主题。
- 参数:
UIFLOW2:
显示已收到消息的处理程序:
def on_sub_cb(data): print("topic:", data[0]) print("msg:", data[1])
在 uiflow2 上,可以通过
和
获取当前 handler 的 topic 和 message 。
- MQTTClient.set_last_will(topic, msg, retain=False, qos=0) None
重要
应该在
connect()之前调用。设置 MQTT 遗嘱消息。
- 参数:
UIFLOW2:
- MQTTClient.wait_msg() None
重要
wait_msg()和check_msg()是主循环迭代方法,有阻 塞和非阻塞版本。 如果您没有任何其他前台任务要执行(即您的应用程序仅对订阅的 MQTT 消息做出反应),则应在循环中定期调用wait_msg(),如果您还 处理其他前台任务,则使用check_msg ()。请注意,如果您只发布消息,从不订阅消息,则不需要调用
wait_msg()/check_msg()。等待服务器消息。
UIFLOW2:
- MQTTClient.check_msg(attempts=2) None
检查是否有来自服务器的待处理消息。如果是, 则与
wait_msg()处理方式相 同,如果不是,则立即返回。UIFLOW2:
None