发布消息

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
}

results matching ""

    No results matching ""