px普贤教程PuXian
普贤教程 › 包参考

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_connecthost, port, client_id, opts={}
mqtt_publishconn, topic, payload, qos=0, retain=false
mqtt_subscribeconn, topic, qos=0
mqtt_unsubscribeconn, topic
mqtt_pingconn
mqtt_readconn
mqtt_closeconn
其余 5 个 def(内部与辅助,可直接调用但不属稳定接口)
函数参数
mq_recv_nfd, n
mq_utf8s
mq_remn
mq_read_packetfd
mq_send_packetfd, 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)
============================================================