48 lines
1.2 KiB
JavaScript
48 lines
1.2 KiB
JavaScript
const { spawn } = require('child_process');
|
|
const path = require('path');
|
|
|
|
console.log('Starting AquaMaster Mock Server...\n');
|
|
|
|
// Start MQTT Broker
|
|
console.log('[1/2] Starting MQTT Broker...');
|
|
const mqttBroker = spawn('node', [path.join(__dirname, 'mqtt_broker.js')], {
|
|
stdio: 'inherit',
|
|
cwd: __dirname
|
|
});
|
|
|
|
mqttBroker.on('error', (err) => {
|
|
console.error('Failed to start MQTT Broker:', err);
|
|
process.exit(1);
|
|
});
|
|
|
|
// Wait a bit longer for MQTT broker to fully start
|
|
setTimeout(() => {
|
|
// Start Mock ESP32 Server
|
|
console.log('[2/2] Starting Mock ESP32 Server...');
|
|
const mockServer = spawn('node', [path.join(__dirname, 'mock_esp32_server.js')], {
|
|
stdio: 'inherit',
|
|
cwd: __dirname
|
|
});
|
|
|
|
mockServer.on('error', (err) => {
|
|
console.error('Failed to start Mock ESP32 Server:', err);
|
|
mqttBroker.kill();
|
|
process.exit(1);
|
|
});
|
|
|
|
// Handle shutdown
|
|
const shutdown = () => {
|
|
console.log('\nShutting down servers...');
|
|
if (mqttBroker && !mqttBroker.killed) {
|
|
mqttBroker.kill();
|
|
}
|
|
if (mockServer && !mockServer.killed) {
|
|
mockServer.kill();
|
|
}
|
|
process.exit(0);
|
|
};
|
|
|
|
process.on('SIGINT', shutdown);
|
|
process.on('SIGTERM', shutdown);
|
|
}, 3000); // Increased wait time to 3 seconds
|