|
const WebSocket = require('ws'); |
|
const { spawn } = require('child_process'); |
|
|
|
|
|
const wss = new WebSocket.Server({ port: 7860 }); |
|
|
|
|
|
wss.on('connection', (ws) => { |
|
console.log('New client connected'); |
|
|
|
|
|
ws.send('Welcome to the WebSocket server!'); |
|
|
|
|
|
ws.on('message', (message) => { |
|
console.log(`Received message: ${message}`); |
|
|
|
|
|
const command = message.toString(); |
|
|
|
|
|
const [cmd, ...args] = command.split(' '); |
|
|
|
|
|
const process = spawn(cmd, args, { shell: true }); |
|
|
|
|
|
process.stdout.on('data', (data) => { |
|
ws.send(`stdout: ${data}`); |
|
}); |
|
|
|
|
|
process.stderr.on('data', (data) => { |
|
ws.send(`stderr: ${data}`); |
|
}); |
|
|
|
|
|
process.on('close', (code) => { |
|
ws.send(`Process exited with code ${code}`); |
|
}); |
|
|
|
|
|
process.on('error', (err) => { |
|
ws.send(`Error: ${err.message}`); |
|
}); |
|
}); |
|
|
|
|
|
ws.on('close', () => { |
|
console.log('Client disconnected'); |
|
}); |
|
}); |
|
|
|
console.log('WebSocket server is running on ws://localhost:7860'); |
|
|