本文介绍登云梯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 | 否 | 设置 |
username | String | 否 | 设置 |
password | String | 否 | 设置 |
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);