Files
LupiNex-Connect/.backup/service.backend/services/websocket/stop.js
T
2026-08-30 15:23:57 +02:00

42 lines
1.0 KiB
JavaScript

// internal dependencies
const connections = require('./connections.js');
// This will hold a reference to the running WebSocket server
let serverInstance = null;
/*
* Stop the WebSocket service
* - Stops heartbeat
* - Closes all active connections
* - Closes the WebSocket server
*/
async function stopService () {
try {
if (!serverInstance) return { online: false };
// Stop heartbeat system
connections.stopHeartbeat();
// Terminate all active connections
connections.clearAll();
// Close WebSocket server
await new Promise((resolve, reject) => {
serverInstance.close((err) => {
if (err) return reject(err);
resolve();
});
});
serverInstance = null;
console.log('WebSocket server stopped successfully');
return { online: false };
} catch (err) {
console.error('Error stopping WebSocket server:', err);
return { online: true, error: err };
}
};
module.exports = stopService;