Add Socket.IO integration for real-time updates in diary features

This commit introduces Socket.IO to the backend and frontend, enabling real-time communication for diary-related events. Key updates include the addition of socket event emissions for diary date updates, tag additions/removals, and activity member changes in the backend controllers. The frontend DiaryView component has been enhanced to connect to the socket server and handle incoming events, ensuring that users receive immediate feedback on changes. Additionally, new dependencies for Socket.IO have been added to both the backend and frontend package files, improving the overall interactivity and responsiveness of the application.
This commit is contained in:
Torsten Schulz (local)
2025-11-13 16:54:31 +01:00
parent 0caa31e3eb
commit c589c11607
14 changed files with 1403 additions and 53 deletions

View File

@@ -1,8 +1,10 @@
import express from 'express';
import path from 'path';
import { fileURLToPath } from 'url';
import { createServer } from 'http';
import sequelize from './database.js';
import cors from 'cors';
import { initializeSocketIO } from './services/socketService.js';
import {
User, Log, Club, UserClub, Member, DiaryDate, Participant, Activity, MemberNote,
DiaryNote, DiaryTag, MemberDiaryTag, DiaryDateTag, DiaryMemberNote, DiaryMemberTag,
@@ -256,7 +258,15 @@ app.get('*', (req, res) => {
// Start scheduler service
schedulerService.start();
app.listen(port);
// Erstelle HTTP-Server für Socket.IO
const httpServer = createServer(app);
// Initialisiere Socket.IO
initializeSocketIO(httpServer);
httpServer.listen(port, () => {
console.log(`🚀 Server läuft auf Port ${port}`);
});
} catch (err) {
console.error('Unable to synchronize the database:', err);
}