示例代码
var mqtt = require('mqtt');
function ArrayToString(fileData) {
var dataString = "";
for (var i = 0; i < fileData.length; i++) {
dataString += String.fromCharCode(fileData[i]);
}
return dataString;
}
function onConnect() {
// subscribe
mqttClient.subscribe({
topic: '/hello',
success: function() {
console.log('subscribe [/hello] success');
}
});
// publish
setInterval(function () {
mqttClient.publish({
topic: '/hello',
message: 'this is AMP mqtt test',
success: function() {
console.log('publish [/hello] success');
}
});
}, 2 * 1000);
}
// create mqtt client
var mqttClient = mqtt.createClient({
host: 'mqtt.eclipse.org',
port: 1883,
username: 'aiot',
password: '123',
success: function() {
console.log('mqtt connected');
},
fail: function() {
console.log('mqtt connect failed');
}
});
mqttClient.on('connect', function() {
console.log('mqtt connected');
onConnect();
});
mqttClient.on('message', function(topic, payload) {
console.log('[' + topic + '] message: ' + ArrayToString(payload));
});
createClient(Object options)
创建一个 MQTTClient 实例(客户端),创建时会连接 MQTT 服务端。暂不支持TLS。
入参
Object类型,其属性有:
属性 | 类型 | 必填 | 描述 |
host | String | 是 | 要连接的MQTT 服务端的地址,可以是ip地址,也可以是域名 |
port | Number | 否 | 要连接的MQTT 服务端的端口号,默认为1883 |
clientId | String | 否 | 设置clientId,默认为系统随机生成 |
username | String | 否 | 设置username |
password | String | 否 | 设置password |
success | Function | 否 | 调用成功的回调函数 |
fail | Function | 否 | 调用失败的回调函数 |
返回值
一个MQTTClient 实例。
MQTTClient 实例
事件
当mqtt关闭时,触发close事件。
当mqtt连接成功后,触发connect事件。
当mqtt连接断开时,触发'disconnect'事件。
当接收到publish数据时,message事件触发。
当发生错误时,error事件触发。
属性
当前是否连接成功。
方法
订阅topic。
取消订阅topic。
发布消息到指定topic。
关闭MQTT Client实例。
注册MQTT 事件回调函数。
事件:'close'
当mqtt关闭时,触发'close'事件。
事件:'connect'
当mqtt连接成功后,触发'connect'事件。
事件:'disconnect'
当mqtt连接断开时,触发'disconnect'事件。服务端断开连接、主动断开连接、网络发生异常等都会触发该事件。
事件:'message'
当接收到publish数据时,'message'事件触发。回调函数的参数有:
属性 | 类型 | 描述 |
topic | String | 接收到数据的topic |
message | ArrayBuffer | 接收到的数据 |
事件:'error'
当发生错误时,'error'事件触发。回调函数的参数有:
属性 | 类型 | 描述 |
error | String | 错误信息 |
MQTTClient.connected
Boolean类型,true
代表连接成功,false
代表连接断开。false
时,底层会一直尝试重连。
MQTTClient.subscribe(Object option)
订阅topic。
入参
Object类型,具体属性为:
属性 | 类型 | 必填 | 描述 |
topic | String | 是 | 要订阅的topic |
qos | Number | 否 | QoS订阅等级,默认为0 |
success | Function | 否 | 订阅成功时的回调函数 |
fail | Function | 否 | 订阅失败时的回调函数 |
MQTTClient.unsubscribe(Object option)
取消订阅的topic。
入参
Object类型,具体属性为:
属性 | 类型 | 必填 | 描述 |
topic | String | 是 | 要取消订阅的topic |
success | Function | 否 | 取消订阅成功的回调函数 |
fail | Function | 否 | 取消订阅成功的回调函数 |
MQTTClient.publish(Object option)
向指定topic发布消息。
入参
Object类型,具体属性为:
属性 | 类型 | 必填 | 描述 |
topic | String | 是 | 要发布消息的topic |
message | String 或ArrayBuffer | 是 | 要发送的数据 |
qos | Number | 否 | QoS订阅等级,默认为0 |
success | Function | 否 | 发布消息成功时的回调函数 |
fail | Function | 否 | 发布消息失败时的回调函数 |
MQTTClient.close()
关闭MQTTClient实例。
MQTTClient.on(String event, Function callback)
监听事件。
入参
属性 | 类型 | 必填 | 描述 |
event | String | 是 | 注册的事件名称 |
callback | Function | 是 | 监听事件的回调函数 |
在文档使用中是否遇到以下问题
更多建议
匿名提交