Initial commit

This commit is contained in:
2025-08-16 19:43:44 +02:00
commit ea9a2627b4
64 changed files with 9232 additions and 0 deletions

View File

@@ -0,0 +1,55 @@
function initializeSocketHandlers(io) {
io.on('connection', (socket) => {
console.log(`Client connected: ${socket.id}`);
// Join device-specific rooms for targeted updates
socket.on('join_device_room', (deviceId) => {
socket.join(`device_${deviceId}`);
console.log(`Client ${socket.id} joined device room: device_${deviceId}`);
});
// Join dashboard room for general updates
socket.on('join_dashboard', () => {
socket.join('dashboard');
console.log(`Client ${socket.id} joined dashboard room`);
});
// Leave rooms
socket.on('leave_device_room', (deviceId) => {
socket.leave(`device_${deviceId}`);
console.log(`Client ${socket.id} left device room: device_${deviceId}`);
});
socket.on('leave_dashboard', () => {
socket.leave('dashboard');
console.log(`Client ${socket.id} left dashboard room`);
});
// Handle client disconnect
socket.on('disconnect', () => {
console.log(`Client disconnected: ${socket.id}`);
});
// Send current status on connect
socket.emit('connection_status', {
status: 'connected',
timestamp: new Date().toISOString(),
clientId: socket.id
});
});
// Helper functions to emit events to specific rooms
io.emitToDevice = function(deviceId, event, data) {
io.to(`device_${deviceId}`).emit(event, data);
};
io.emitToDashboard = function(event, data) {
io.to('dashboard').emit(event, data);
};
console.log('Socket.IO handlers initialized');
}
module.exports = {
initializeSocketHandlers
};