mqtt

stopmqtt subscribe 状态码

MQTT是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分。本模块通过startmqtt订阅,之后所有服务器过来的消息都在startmqtt的callback里呈现,其他的指令单独返回callback(一般只反馈接口是否调用成功)。所以建议在startmqtt的callback里处理服务器下发的数据.

不能同时添加的模块:fog2

startmqtt

params

host:

  • 类型:字符串
  • 默认值:无
  • 描述:host,域名或者IP

port:

  • 类型:字符串
  • 默认值:无
  • 描述:端口,一般是1883

topic:

  • 类型:字符串
  • 默认值:无
  • 描述:监听的主题

username:

  • 类型:字符串
  • 默认值:无
  • 描述:用户名

password:

  • 类型:字符串
  • 默认值:无
  • 描述:用户密码

clientid:

  • 类型:字符串
  • 默认值:无
  • 描述:客户端ID

isencrypt:

  • 类型:boolean
  • 默认值:无
  • 描述:是否SSL加密(默认为false)

callback(ret,err)

ret:

  • 类型:JSON对象
  1. {
  2. "message": "success",
  3. "code": 0
  4. }
  5. //连接成功
  6. {
  7. "status": "connected",
  8. "code": 4210
  9. }
  10. //收到服务器的数据
  11. {
  12. "topic": "d64f517c/c8934691813c/out/read",
  13. "payload": {"9": 3062},
  14. }

err:

  • 类型:JSON对象

内部字段:

  1. {
  2. code : 0,
  3. message:"Parameter is null"
  4. }

示例代码

  1. var mqtt = api.require('mqtt');
  2. var param = {
  3. host: "api.easylink.io",
  4. port: "1883",
  5. topic: "d64f517c/c8934691813c/out/read/#",
  6. username: "admin",
  7. password: "admin",
  8. clientid: "f60e5d3c-65aa-11e6-9d95-00163e103941",
  9. isencrypt: false
  10. };
  11. mqtt.startmqtt(param, function(ret, err) {
  12. if (ret)
  13. alert(JSON.stringify(ret));
  14. else
  15. alert(JSON.stringify(err));
  16. })

可用性

  1. Android系统,iOS系统

stopmqtt

  1. 断开MQTT连接
  2. stopmqtt(function(ret, err))

callback(ret,err)

ret:

  • 类型:JSON对象

内部字段:

  1. {
  2. "status": "stopped",
  3. "code": 4212
  4. }

err:

  • 类型:JSON对象

内部字段:

  1. {
  2. "message": "mqtt closed",
  3. "code": 4204
  4. }

可用性

  1. Android系统,iOS系统
  2. 可提供的1.0.0及更高版本

publish

  1. 发送指令
  2. publish(param, function(ret, err))

params

topic:

  • 类型:字符串
  • 默认值:无
  • 描述:发送指令的通道

command:

  • 类型:字符串
  • 默认值:无
  • 描述:指令

qos:

  • 类型:数字
  • 默认值:无
  • 描述:建议为0,QoS=0:最多一次,有可能重复或丢失;QoS=1:至少一次,有可能重复;QoS=2:只有一次,确保消息只到达一次(用于比较严格的计费系统)

retained:

  • 类型:boolean
  • 默认值:无
  • 描述:建议为false(设置是否在服务器中保存消息体)

callback(ret,err)

ret:

  • 类型:JSON对象
  1. {
  2. "status": "publish success",
  3. "code": 4219
  4. }

err:

  • 类型:JSON对象

内部字段:

  1. {
  2. "message": "mqtt closed",
  3. "code": 4204
  4. }

示例代码

  1. topic: "d64f517c/c8934691813c/in/write/0012",
  2. command: '{"4":false}',
  3. // qos: 6,
  4. // retained: false
  5. };
  6. mqtt.publish(param, function(ret, err) {
  7. if (ret)
  8. alert(JSON.stringify(ret));
  9. else
  10. alert(JSON.stringify(err));
  11. });

可用性

  1. Android系统,iOS系统

subscribe

  1. 增加订阅的通道
  2. subscribe(param, function(ret, err))

topic:

  • 类型:字符串
  • 默认值:无
  • 描述:发送指令的通道

qos:

  • 类型:数字
  • 默认值:无
  • 描述:建议为0,QoS=0:最多一次,有可能重复或丢失;QoS=1:至少一次,有可能重复;QoS=2:只有一次,确保消息只到达一次(用于比较严格的计费系统)

callback(ret,err)

ret:

  • 类型:JSON对象

内部字段:

err:

  • 类型:JSON对象

内部字段:

  1. {
  2. "message": "mqtt closed",
  3. "code": 4204
  4. }

示例代码

  1. var param = {
  2. topic: "d64f517c/c8934691813c/in/write/#",
  3. qos: 0,
  4. };
  5. mqtt.subscribe(param, function(ret, err) {
  6. if (ret)
  7. alert(JSON.stringify(ret));
  8. else
  9. alert(JSON.stringify(err));
  10. });

可用性

  1. Android系统,iOS系统
  2. 可提供的1.0.0及更高版本

unsubscribe

  1. 移除订阅的通道
  2. unsubscribe(param, function(ret, err))

params

topic:

  • 类型:字符串
  • 默认值:无
  • 描述:发送指令的通道

callback(ret,err)

ret:

  • 类型:JSON对象

内部字段:

  1. {
  2. "status": "unsubscribe success",
  3. "code": 4215
  4. }
  • 类型:JSON对象

内部字段:

  1. {
  2. "message": "mqtt closed",
  3. "code": 4204
  4. }
  1. var param = {
  2. topic: "d64f517c/c8934691813c/in/write/#"
  3. };
  4. mqtt.unsubscribe(param, function(ret, err) {
  5. if (ret)
  6. alert(JSON.stringify(ret));
  7. else
  8. alert(JSON.stringify(err));

可用性

状态码