Spaces:
Sleeping
Sleeping
| 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'); |