阿里云mqtt 收发demo(nodejs)

256 阅读1分钟
/**
 * node 程序, mqtt发送消息
 */
var mqtt = require("mqtt");
var CryptoJS = require("crypto-js");
let config = require("./config");

var clientId = config.GROUP_ID + "@@@" + new Date().valueOf().toString();
var username = "Signature|" + config.accessKey + "|" + config.instanceId;
var password = CryptoJS.HmacSHA1(clientId, config.secretKey).toString(
  CryptoJS.enc.Base64
);

var options = {
  username: username,
  password: password,
  clientId: clientId,
  keepalive: 90,
  connectTimeout: 3000,
};

var client = mqtt.connect(config.host, options);
var topic = "user-records";

client.on("connect", function () {
  setInterval(() => {
    client.publish(topic, "Hello mqtt ");
    client.end();
  }, 1000);
});
// 关闭连接的回调函数
client.on("close", () => {
  console.log("已关闭 MQTT 连接");
});

/**
 * node 程序 mqtt接收端
 */
var mqtt = require("mqtt");
var CryptoJS = require("crypto-js");
let config = require("./config");

var clientId = config.GROUP_ID + "@@@" + new Date().valueOf().toString();
var username = "Signature|" + config.accessKey + "|" + config.instanceId;
var password = CryptoJS.HmacSHA1(clientId, config.secretKey).toString(
  CryptoJS.enc.Base64
);

var options = {
  username: username,
  password: password,
  clientId: clientId,
  keepalive: 90,
  connectTimeout: 3000,
};

var client = mqtt.connect(config.host, options);
var topic = "user-records";
client.on("connect", function () {
	client.subscribe(topic, { qos: 1 });
});
client.on("message", function (topic, message) {
	console.log("接受到的消息:", message.toString());
  });
let config = {
  accessKey: "",
  secretKey: "",
  GROUP_ID:'GID_FACE',
  instanceId:'post-cn-xxxxxx',
  host:'tcp://post-cn-xxxxxx.mqtt.aliyuncs.com'
};

module.exports = config
{
  "dependencies": {
    "crypto-js": "^4.2.0",
    "mqtt": "^5.5.0"
  }
}