消息队列遥测传输-mqtt
描述
MQTT,父对象为ui,无子对象
事件
- receive: 收到消息,事件函数定义:onReceive(topic, payload), topic为消息的主题,payload为消息的内容。
- success: 操作成功, 函数定义:onSuccess(name), name为操作的名称
- failure: 操作失败,事件函数定义:onFailure(name, code, reason), name为操作的名称,code是错误码,reason是错误原因
属性
名称 | 功能说明 | 脚本例子 |
---|---|---|
serverURI | 服务器地址 | ui.form-name.mqtt-name.serverURI=’tcp://a1Q3Z20kLS2.iot-as-mqtt.cn-shanghai.aliyuncs.com:1883′ 设置TCP地址 ui.form-name.mqtt-name.serverURI='ssl://PT92BACAMF.iotcloud.tencentdevices.com:8883' 设置SSL地址 |
clientId | 客户端标识 | ui.form-name.mqtt-name.clientId='3e3ba84e23554aea8beef8034770851a' 设置客户端标识 |
userName | 用户名 | ui.form-name.mqtt-name.userName='DxM1000&a1Q3Z20kLS2' 设置用户名 |
userPassword | 密码 | ui.form-name.mqtt-name.userPassword='123456' 设置密码 |
keepAliveInterval | 心跳间隔 | ui.form-name.mqtt-name.keepAliveInterval=60 设置心跳间隔为60S |
connectTimeout | 连接超时 | ui.form-name.mqtt-name.connectTimeout=30 设置连接超时为30S |
cleanSession | 全新会话 | ui.form-name.mqtt-name.cleanSession=true 设置为全新会话 |
autoReconnect | 自动重连 | ui.form-name.mqtt-name.autoReconnect=true 设置为自动重连 |
sslEnabled | 使能加密 | ui.form-name.mqtt-name.sslEnabled=true 使能加密,使用证书加密 |
insecure | 不安全的 | ui.form-name.mqtt-name.insecure=true 设置为不安全的加密,不校验证书的域名 |
version | MQTT版本 | ui.form-name.mqtt-name.version=0 设置MQTT版本为默认值(先尝试3.1.1,如果失败再尝试3.1) |
方法
名称 | 功能说明 | 脚本例子 |
---|---|---|
connect() | 连接MQTT服务器 | ui.form-name.mqtt-name.connect() |
disconnect() | 断开与服务器的连接 | ui.form-name.mqtt-name.disconnect() |
subscribe(topic, qos) | 订阅主题,topic为主题,qos为服务质量等级(qos=0,最多一次,qos=1,最少一次,qos=2,只有一次) | ui.form-name.mqtt-name.subscribe(‘test1', 0) 订阅主题test1 |
unsubscribe(topic) | 退订主题,topic为主题 | ui.form-name.mqtt-name.unsubscribe('test1') 退订主题test1 |
publish(topic, payload, qos) | 发布消息,topic为主题,payload为内容,qos为服务质量等级 | ui.form-name.mqtt-name.publish('test1', 'hello', 0) |
publishRetained(topic, payload, qos) | 发布保留消息,topic为主题,payload为内容,qos为服务质量等级 | ui.form-name.mqtt-name.publishRetained('test1', 'hello', 0) |
setWillTopic(topic, payload, qos, retained) | 设置遗愿主题,topic为主题,payload为内容,qos为服务质量等级, retained 是否为保留消息 | ui.form-name.mqtt-name.setWillTopic('test1', 'hello', 0, false) |
setCaFile(filepath) | 设置CA证书文件 | ui.form-name.mqtt-name.setCaFile('/app/native/ca.crt') |
setCaPath(path) | 设置CA证书的路径 | ui.form-name.mqtt-name.setCaPath('/app/native') |
setClientCertFile(filepath) | 设置客户端证书文件 | ui.form-name.mqtt-name.setClientCertFile('/app/native/dxm-100_cert.crt') |
setClientKeyFile(filetpath) | 设置客户端私钥文件 | ui.form-name.mqtt-name.setClientKeyFile('/app/native/dxm-100_private.key') |
setClientKeyPassword(password) | 设置客户端私钥密码 | ui.form-name.mqtt-name.setClientKeyPassword('123456') |