const { log } = require("../src/util"); const mqttUsername = "louis1"; const mqttPassword = "!@#$LLam"; class SimpleMqttServer { aedes = require("aedes")(); server = require("net").createServer(this.aedes.handle); /** * @param {number} port Port to listen on */ constructor(port) { this.port = port; } /** * Start the MQTT server * @returns {void} */ start() { this.server.listen(this.port, () => { console.log("server started and listening on port ", this.port); }); } } let server1 = new SimpleMqttServer(10000); server1.aedes.authenticate = function (client, username, password, callback) { if (username && password) { console.log(password.toString("utf-8")); callback(null, username === mqttUsername && password.toString("utf-8") === mqttPassword); } else { callback(null, false); } }; server1.aedes.on("subscribe", (subscriptions, client) => { console.log(subscriptions); for (let s of subscriptions) { if (s.topic === "test") { server1.aedes.publish({ topic: "test", payload: Buffer.from("ok"), }, (error) => { if (error) { log.error("mqtt_server", error); } }); } } }); server1.start();