Spaces:
Sleeping
Sleeping
File size: 1,438 Bytes
1341f9f |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
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'); |