MQTT

本文介绍登云梯JS开发框架中MQTT组件所提供的相关方法说明,支持的硬件平台列表以及参考示例代码。

硬件平台

产品型号

是否支持

硬件类型

HaaS600Kit

开发板

HaaS510

DTU

HaaS520

DTU

HaaS530

DTU

HaaS531

DTU

HaaS632-LT32V

模组

HaaS600-EC600S

模组

HaaS600-EC600N

模组

HaaS600-EC600U

模组

HaaS600-N715

模组

createClient(Object options)

客户端创建一个MQTT Client实例,创建时会连接MQTT服务端。

入参

Object类型,其属性有:

属性

类型

是否必填

描述

host

String

要连接的MQTT服务端的地址,可以是IP地址,也可以是域名。

port

Number

要连接的MQTT服务端的端口号,默认为1883。

clientId

String

设置clientId,默认为系统随机生成。

username

String

设置username

password

String

设置password

keepalive_interval

Number

设置MQTT心跳时间,单位秒,默认60秒。

success

Function

调用成功的回调函数。

fail

Function

调用失败的回调函数。

返回

MQTTClient:一个MQTTClient实例。

事件:'close'

当MQTT关闭时,触发'close'事件。

事件:'connect'

当MQTT连接成功后,触发'connect'事件。

事件:'disconnect'

当MQTT连接断开时,触发'disconnect'事件。服务端断开连接、主动断开连接、网络发生异常等都会触发该事件。

事件:'message'

当接收到Publish数据时,'message'事件触发。回调函数的参数有:

属性

类型

描述

topic

String

接收到数据的Topic。

message

ArrayBuffer

接收到的数据。

事件:'error'

当发生错误时,'error'事件触发。回调函数的参数有:

属性

类型

描述

error

String

错误信息。

MQTTClient.subscribe(Object option)

订阅Topic。

入参

Object类型,具体属性为:

属性

类型

是否必填

描述

topic

String

要订阅的Topic。

qos

Number

QoS订阅等级,默认为0。

success

Function

订阅成功时的回调函数。

fail

Function

订阅失败时的回调函数。

返回

无。

MQTTClient.unsubscribe(Object option)

取消订阅的Topic。

入参

Ojbect类型,具体属性为:

属性

类型

必填

描述

topic

String

要取消订阅的Topic。

返回

无。

MQTTClient.publish(Object option)

向指定Topic发布消息。

入参

Object类型,具体属性为:

属性

类型

是否必填

描述

topic

String

要发布消息的Topic。

message

String或ArrayBuffer

要发送的数据。

qos

Number

QoS订阅等级,默认为0。

success

Function

发布消息成功时的回调函数。

fail

Function

发布消息失败时的回调函数。

返回

无。

MQTTClient.reconnect()

当发生'disconnect'事件时,使用reconnect()可以重新连接 MQTT 服务器。

入参

无。

返回

无。

MQTTClient.close()

关闭MQTT Client实例。

入参

无。

返回

无。

MQTTClient.on(String event, Function callback)

监听事件。

入参

属性

类型

是否必填

描述

event

String

注册的事件名称。

callback

Function

监听事件的回调函数。

事件类型

事件类型

描述

close

MQTT关闭事件。

connect

连接上MQTT服务端事件。

message

接收到新的Publish消息事件。

error

发生错误事件。

返回

无。

示例代码

import * as mqtt from 'mqtt';

// create mqtt client
var client = mqtt.createClient({
  host: 'mqtt.eclipse.org',
  port: 1883,
  clientId: 'aiot#123',
  username: 'aiot',
  password: '123',
  success: function() {
    console.log('mqtt connected');
  },
  fail: function() {
    console.log('mqtt connect failed');
  }
});

client.on('message', function(topic, payload) {
  console.log('[' + topic + ']  message: ' + payload)
});

// subscribe
client.subscribe({
  topic: '/hello'
});

// publish
setInterval(function () {
  client.publish({
    topic: '/hello',
    message: 'this is AMP mqtt test'
  });
}, 3 * 1000);