const WebSocket = require('ws'); const { exec } = require('child_process'); // Create a WebSocket server listening on port 3000 const wss = new WebSocket.Server({ port: 3000 }); // Event listener for new connections wss.on('connection', (ws) => { console.log('connected'); // Send a message to the client when they connect ws.send('WebSocket server!'); // Event listener for messages from the client ws.on('message', (message) => { console.log(`Received message: ${message}`); // Convert message (Buffer) to string const command = message.toString(); // Execute the command without sudo exec(command, (error, stdout, stderr) => { if (error) { ws.send(`Error: ${error.message}`); console.log(`Error: ${stderr}`); return; } if (stderr) { ws.send(`stderr: ${stderr}`); console.log(`Process: ${stderr}`); return; } if (stdout) { ws.send(`stdout: ${stdout}`); console.log(`Log: ${stdout}`); return; } //ws.send(`stdout: ${stdout}`); }); }); // Event listener for client disconnects ws.on('close', () => { console.log('Client disconnected'); }); }); console.log('WebSocket server is running on ws://localhost:3000');