发布消息
MQTT客户端发送消息请求,发送完成后返回应用程序线程。
[!TIP|labelVisibility:hidden|iconVisibility:hidden] navigator.mqtt.publish(args)
支持平台:
- Android
- iOS
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
args | Object | 是 | 数据对象 |
args
参数为一个对象,其属性包含以下一项或多项:
topic
(String/必选) --订阅的主题payload
(String)--消息体,主题的消息内容qos
(NSNumber/可选) --服务质量,默认0;0:最多一次的传输;1:至少一次的传输,2: 只有一次的传输,3:待用,保留位置retain
(Boolean/可选) -发布保留标识,仅针对PUBLISH消息。默认true
;false仅仅为当前订阅者推送此消息;true表示发送的消息需要一直持久保存(不受服务器重启影响),不但要发送给当前的订阅者,并且以后新来的订阅了此Topic name的订阅者会马上得到推送。success
(Function/ 可选 /当前参数仅支持Android) --成功回调函数,返回为一个对象,其属性包含以下一项或多项:type
(String) --消息类型call
(String) --连接获取response
(String)--连接反馈connectionStatus
(String)--连接状态qos
(NSNumber) --服务质量,默认0;0:最多一次的传输;1:至少一次的传输,2: 只有一次的传输,3:待用,保留位置
error
(Function/ 可选 /当前参数仅支持Android) --失败回调函数,返回为一个对象,其属性包含以下一项或多项:type
(String) --消息类型call
(String) --连接获取response
(String)--连接反馈connectionStatus
(String)--连接状态qos
(NSNumber) --服务质量,默认0;0:最多一次的传输;1:至少一次的传输,2: 只有一次的传输,3:待用,保留位置
示例代码
// 引用js
<script src='supconit://hcmobile.js'></script>
<script>
// 监听’deviceready‘事件
document.addEventListener('deviceready', onDeviceReady, false)
function onDeviceReady(){
navigator.mqtt.publish({
topic:"aiot/notice/change",
payload:"hello from the plugin",
qos:0,
retain:false,
success:function(s){
alert("publish success"+JSON.stringify(s));
},
error:function(e){
alert('publish error'+JSON.stringify(e));
}
})
}
</script>
Android响应成功示例代码:
{
"type":"publish",
"call":"success",
"response":"published",
"connectionStatus":"true",
"qos":1
}
Android响应失败示例代码:
{
"type":"publish",
"call":"failure",
"response":"not published",
"connectionStatus":"false",
"qos":2
}