mirror of
				https://github.com/louislam/uptime-kuma.git
				synced 2025-10-31 19:39:20 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			52 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| const { log } = require("../src/util");
 | |
| 
 | |
| const mqttUsername = "louis1";
 | |
| const mqttPassword = "!@#$LLam";
 | |
| 
 | |
| class SimpleMqttServer {
 | |
|     aedes = require("aedes")();
 | |
|     server = require("net").createServer(this.aedes.handle);
 | |
| 
 | |
|     constructor(port) {
 | |
|         this.port = port;
 | |
|     }
 | |
| 
 | |
|     /** Start the MQTT server */
 | |
|     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();
 |