全部产品
云市场
云游戏

mqtt

更新时间:2020-09-22 19:38:11

示例代码

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

监听事件的回调函数

事件类型

事件类型

描述

close

mqtt关闭事件

connect

连接上mqtt服务端事件

message

接收到新的publish消息事件

error

发生错误事件