summaryrefslogtreecommitdiffstats
path: root/extra/simple-mqtt-server.js
diff options
context:
space:
mode:
authorDaniel Baumann <daniel@debian.org>2024-11-26 09:28:28 +0100
committerDaniel Baumann <daniel@debian.org>2024-11-26 12:25:58 +0100
commita1882b67c41fe9901a0cd8059b5cc78a5beadec0 (patch)
tree2a24507c67aa99a15416707b2f7e645142230ed8 /extra/simple-mqtt-server.js
parentInitial commit. (diff)
downloaduptime-kuma-upstream.tar.xz
uptime-kuma-upstream.zip
Adding upstream version 2.0.0~beta.0+dfsg.upstream/2.0.0_beta.0+dfsgupstream
Signed-off-by: Daniel Baumann <daniel@debian.org>
Diffstat (limited to 'extra/simple-mqtt-server.js')
-rw-r--r--extra/simple-mqtt-server.js57
1 files changed, 57 insertions, 0 deletions
diff --git a/extra/simple-mqtt-server.js b/extra/simple-mqtt-server.js
new file mode 100644
index 0000000..66ebfe4
--- /dev/null
+++ b/extra/simple-mqtt-server.js
@@ -0,0 +1,57 @@
+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();