mqtt 插件
本插件封装的是MQTT协议api,MQTT是一个轻量级的发布/订阅消息传递协议,是很有用的。
插件集成使用说明:(已集成到平台公共插件,直接勾选打包)
暂无
插件测试用例与源码下载:点击 插件中心至插件详情页 (插件测试用例与插件源码已经提供)
小贴士:集成接口请先下载测试用例与参考文档。
本插件的所有API默认支持Android4.0+和iOS7.0+操作系统.
有特殊版本要求的API会在文档中额外说明.
本插件所有API默认在插件版本4.0.0+可用.
在后续版本中新添加的接口会在文档中额外说明.
init //初始化
uexMQTT.init()
说明:
参数:
无
示例:
uexMQTT.init();
connect //连接到MQTT服务器
uexMQTT.connect(param,callback)
说明:
参数:
param
是JSON Object
var param = {
clientId:,//String,可选,客户端Id,此参数不传时,将随机生成一个
server:,//String,必选,服务器地址
port:,//Number,必选,服务器端口
username:,//String,可选,用户名(如果服务器允许匿名登录,此参数可为空)
password:,//String,可选,用户密码(传username时,此参数必传,不传username时,此参数将被忽略)
keepAliveInterval:,//Number,必选,心跳包发送频率,单位:秒
LWT:{//Object,可选,Last Will and Testament相关设置
enable:,//Boolean, 是否启用LWT
topic:,//String,willMessage的topic
qos:,//Number,willMessage的qos
data:,//String,willMessage的data
retainFlag:,//Boolean,willMessage的retainFlag
}
}
callback
是一个Function
var callback=function(error,data){
//error 为0时表示成功,其他表示失败
//data 错误时返回相关的错误信息
}
示例
uexMQTT.connect({
server: "test.mosquitto.org", //String,必选,服务器地址
port: 1883, //Number,必选,服务器端口
keepAliveInterval: 30, //Number,必选,心跳包发送频率,单位:秒
// LWT:{//Object,可选,Last Will and Testament相关设置
// enable:true,//Boolean, 是否启用LWT
// topic:"willTopic",//String,willMessage的topic
// qos:1,//Number,willMessage的qos
// data:"willData",//String,willMessage的data
// retainFlag:true,//Boolean,willMessage的retainFlag
// }
},function (error, data) {
if (!error){
alert("connect success...")
}else{
alert("failed. "+data)
}
});
subscribe //订阅一个topic
uexMQTT.subscribe(param,callback)
说明:
无
参数:
param是JSON Object
var param = {
topic:,//String,必选,要订阅的topic
qos:,//Number,必选 此topic的qos
}
callback
是一个Function
var callback=function(error,topic){
//error 为0时表示成功,其他表示失败
//topic String,要订阅的topic,error非0(即错误)时返回相关的错误信息
}
示例
uexMQTT.subscribe({
topic: "b1e57467c92140e299022deb808cdd24/000000/get", //String,必选,要订阅的topic
qos: 1, //Number,必选 此topic的qos
},function (error, data) {
if (!error){
alert("subscribe success..."+data)
}else{
alert("failed. "+data)
}
});
unsubscribe //取消订阅一个topic
uexMQTT.unsubscribe(param,callback)
说明:
无
参数:
param是JSON Object
var param = {
topic:,//String,必选,要取消订阅的topic
}
callback
是一个Function
var callback=function(error,topic){
//error 为0时表示成功,其他表示失败
//topic String,要订阅的topic,error非0(即错误)时返回相关的错误信息
}
示例
uexMQTT.unsubscribe({
topic: "b1e57467c92140e299022deb808cdd24/000000/get", //String,必选,要订阅的topic
},function (error, data) {
if (!error){
alert("unsubscribe success..."+data)
}else{
alert("failed. "+data)
}
});
publish //发布一条消息
uexMQTT.publish(param,callback)
说明:
无
参数:
param是JSON Object
var param = {
topic:,//String,必选,发布消息的topic
qos:,//Number,必选,要发布消息的qos
data:,//String,必选,要发布的消息数据
retainFlag:,//Boolean,可选. MQTT broker是否要保留此消息,默认false
}
callback
是一个Function
var callback=function(error,data){
//error 为0时表示成功,其他表示失败
//topic error非0(即错误)时返回相关的错误信息
}
返回值
示例
uexMQTT.publish({
id: "uid123456", //String,必选,自定义id,用于在cbPublish中区分消息
topic: "b1e57467c92140e299022deb808cdd24/000000/set", //String,必选,发布消息的topic
qos: 0, //Number,必选,要发布消息的qos
data: "heeello!", //String,必选,要发布的消息数据
retainFlag: false //Boolean,可选. MQTT broker是否要保留此消息,默认false
},function (error, data) {
if (!error){
alert("publish success...")
}else{
alert("failed. "+data)
}
});
disconnect //中断与服务器的连接
uexMQTT.disconnect(callback)
说明:
参数:
callback
是一个Function
var callback=function(error,data){
//error 为0时表示成功,其他表示失败
//data 错误时返回相关的错误信息
}
示例
var disconnect = function() {
uexMQTT.disconnect(function (error, data) {
if (!error){
alert("disconnect success...")
}else{
alert("disconnect failed...")
}
});
}
onStatusChange //MQTT状态变化的监听
uexMQTT.onStatusChange(param)
参数
param是JSON Object
var param = {
status:,//MQTT状态,详见附录
}
示例
window.uexOnload = function() {
uexMQTT.onStatusChange = function(data) {
alert("status: "+data.status);
}
}
onNewMessage //收到新消息的监听
uexMQTT.onNewMessage(param)
参数
param是JSON Object
var param = {
data:,//String,必选,消息数据内容
topic:,//String,必选, 消息的topic
qos:,//Number,必选,消息的qos
retainFlag:,//Boolean,必选,此消息是否来自于broker的storage
mid:,//Number,必选,消息的mid
}
示例
window.uexOnload = function() {
uexMQTT.onNewMessage = function(data) {
alert("receive message!\nmid: " + data.mid + "\non topic: " + data.topic + "\nqos: " + data.qos + "\nretainFlag: " + data.retainFlag + "\ndata: " + data.data);
}
}
status | desc |
---|---|
0 | Initialized |
1 | Connecting |
2 | Connected |
3 | Disconnecting |
4 | Closed |
errCode | desc |
---|---|
-255 | Unknown Error |
-6 | Socket Error |
-5 | Connection Already Exist |
-4 | Connection Refused |
-3 | No Response |
-2 | Invalid Connack Received |
-1 | No Connack Received |
1~255 | MQTT Protocol ErrorCode |