普贤教程 › 包参考
mqtt 包
MQTT 3.1.1 客户端
纯 .px 实现 MQTT 3.1.1(OASIS),双模式一致。
| 项 | 值 |
|---|---|
| 包名 | mqtt |
| 版本 | 0.2.0 |
| 可用版本 | 0.1.0 / 0.2.0 |
| 入口 | mqtt.px |
| 分类 | 网络与协议 |
| 文件数 / 行数 | 1 / 258 |
安装与引入
bash
pxpkg init # 首次 pxpkg add mqtt@0.2.0 pxpkg install
px
import mqtt所属分类教程:网络与协议
公开接口
| 函数 | 参数 |
|---|---|
mqtt_connect | host, port, client_id, opts={} |
mqtt_publish | conn, topic, payload, qos=0, retain=false |
mqtt_subscribe | conn, topic, qos=0 |
mqtt_unsubscribe | conn, topic |
mqtt_ping | conn |
mqtt_read | conn |
mqtt_close | conn |
其余 5 个 def(内部与辅助,可直接调用但不属稳定接口)
| 函数 | 参数 |
|---|---|
mq_recv_n | fd, n |
mq_utf8 | s |
mq_rem | n |
mq_read_packet | fd |
mq_send_packet | fd, typ, flags, body |
包内说明(源码头注释)
text
============================================================ 普贤生态库:registry/mqtt —— MQTT 3.1.1 客户端 ------------------------------------------------------------ 纯 .px 实现 MQTT 3.1.1(OASIS),双模式一致。 对齐 Go eclipse/paho.mqtt.golang、Python paho-mqtt 心智: mqtt_connect(host, port, client_id[, opts]) → Ok(conn dict) | Err opts: { keepalive, timeout_ms, username, password, will_topic, will_payload, will_qos, will_retain } mqtt_publish(conn, topic, payload[, qos[, retain]]) → Ok(true) | Err QoS 0: fire-and-forget;QoS 1: 等 PUBACK mqtt_subscribe(conn, topic[, qos]) → Ok(true) | Err mqtt_unsubscribe(conn, topic) → Ok(true) | Err mqtt_ping(conn) → Ok(true) | Err mqtt_read(conn) → Ok({topic, payload, qos, retain}) | Err mqtt_close(conn) → Ok(true) | Err 说明: - QoS 0 + QoS 1 发布(QoS 1 等 PUBACK 确认) - 支持 username/password 认证、遗嘱(LWT)、retain 标志 - 无 TLS(keepalive 由调用方 ping) - UTF-8 串一律 2 字节大端长度前缀(字节数,非 rune 数) 依赖 runtime native:tcp_connect_ex / tcp_send_ex / tcp_recv_ex / int_to_bytes / bytes_to_int(little/big signed 均可用,M186) ============================================================