acMqtt

立即使用

概述

acMqtt模块封装了 MQTT SDK, MQTT 是IBM开发的一个即时通讯协议。

connect

连接

connect({params},callback(ret))

params

host:

  • 类型:字符串
  • 描述:主机名或IP地址,android 例:’tcp://127.0.0.1‘

port:

  • 类型:字符串
  • 描述:端口

clean:

  • 类型:布尔类型
  • 描述:(可选项)服务器是否应放弃先前的会话信息
  • 默认:true

auth:

  • 类型:布尔类型
  • 描述:(可选项)指定应该使用用户和传递参数进行身份验证
  • 默认:true

keepalive:

  • 类型:数字类型
  • 描述:(可选项)保持活动状态的时间间隔,单位秒
  • 默认:60

clientId:

  • 类型:字符串
  • 描述:客户端标识符

user:

  • 类型:字符串
  • 描述:用户名

pass:

  • 类型:字符串
  • 描述:密码

willTopic:

  • 类型:字符串
  • 默认值:订阅的主题

will:

  • 类型:布尔类型
  • 描述:(可选项)离线是否发送
  • 默认:false

willMsg:

  • 类型:字符串
  • 默认值:(可选项)离线消息

willQos:

  • 类型:数字
  • 默认值:(可选项)指定发布离线消息时要使用的QoS级别
  • 默认:0
  • 取值范围:
    • 0:atMostOnce
    • 1:atLeastOnce
    • 2:exactlyOnce

protocolLevel:

  • 类型:数字
  • 默认值:(可选项)连接的协议版本
  • 默认:0
  • 取值范围:

    • 0:version0
    • 3:version31
    • 4:version311
    • 5:version50

    willRetainFlag:

  • 类型:布尔类型

  • 描述:(可选项)指示服务器是否应使用retainFlag发布离线消息
  • 默认:false

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true ,          //布尔类型;是否成功,true|false
}

示例代码

var acMqtt = api.require('acMqtt');
acMqtt.onnect({
},function(ret) {
    api.alert(ret);
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

sendData

发送数据

sendData({params})

params

data:

  • 类型:字符串
  • 描述:发送数据,长度范围为0到268,435,455-4-lengthof-topic个字节。

topic:

  • 类型:字符串类型
  • 描述:发布数据的主题

qosLevel:

  • 类型:数字
  • 默认值:(可选项)发布消息时要使用的QoS级别
  • 默认:0
  • 取值范围:
    • 0:atMostOnce
    • 1:atLeastOnce
    • 2:exactlyOnce

retainFlag:

  • 类型:布尔类型
  • 描述:(可选项)服务器是否应使用retainFlag发布消息,如果为true,则将数据存储在MQTT代理上,直到被retainFlag = true的下一次发布覆盖为止
  • 默认:false

示例代码

var acMqtt = api.require('acMqtt');
acMqtt.sendData({
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

disconnect

断开连接

disconnect(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true ,          //布尔类型;是否成功,true|false
}

示例代码

var acMqtt = api.require('acMqtt');
acMqtt.disconnect(function(ret) {
    api.alert(ret);
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

subscribeTopic

订阅主题

subscribeTopic({params})

params

topic:

  • 类型:字符串
  • 描述:订阅主题

qosLevel:

  • 类型:数字
  • 默认值:(可选项)发布消息时要使用的QoS级别
  • 默认:0
  • 取值范围:
    • 0:atMostOnce
    • 1:atLeastOnce
    • 2:exactlyOnce

示例代码

var acMqtt = api.require('acMqtt');
acMqtt.subscribeTopic({
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

unsubscribeTopic

取消订阅主题

unsubscribeTopic({params})

params

topic:

  • 类型:字符串
  • 描述:订阅主题

示例代码

var acMqtt = api.require('acMqtt');
acMqtt.unsubscribeTopic({
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

addEventListener

添加监听

addEventListener(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
     eventType: ''   //字符串类型;播放器状态,取值范围如下:
                     //handleMessage:收到新消息
                     //receiveMessage:收到新消息;sessionManager消息(仅iOS支持)
                     //messageDelivered:实际发送已发送的消息
                     //didDeliverMessage:实际发送已发送的消息; sessionManager消息(仅iOS支持)
                     //didChangeState:连接状态更改(仅iOS支持)
                    //connectLost: 连接断开(仅android支持)
     msgID:6,        //数字类型;消息id;messageDelivered、didDeliverMessage返回 
     newState:6,     //数字类型;状态;didChangeState返回  (仅iOS支持)
                     //取值范围:
                                      //0:starting
                                      //1:connecting
                                      //2:error
                                      //3:connected
                                      //4:closing
                                      //5:closed
     data:''         //字符串类型;数据;handleMessage、receiveMessage返回
     topic:''        //字符串类型;数据的主题;handleMessage、receiveMessage返回
     retained:true,  //布尔类型;是否从服务器存储中重新传输了数据;handleMessage、receiveMessage返回  

}

示例代码

var acMqtt = api.require('acMqtt');
acMqtt.addEventListener(function(ret) {
   alert(JSON.stringify(ret));
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本