Commit Graph

44 Commits

Author SHA1 Message Date
Torsten Schulz (local)
32774617cd Füge Debug-Ausgaben in ChatUser, Server, SSLServer und Base hinzu
- Ergänze Debug-Logs in den Konstruktoren und wichtigen Methoden, um den Ablauf und die Konfiguration während der Server- und Benutzerinitialisierung zu protokollieren.
- Verbessere die Nachverfolgbarkeit von WebSocket-Verbindungen und Nachrichtenübertragungen durch zusätzliche Ausgaben in den entsprechenden Methoden.
- Diese Änderungen unterstützen die Fehlersuche und verbessern die Transparenz des Systemverhaltens während der Laufzeit.
2025-09-05 13:10:30 +02:00
Torsten Schulz (local)
8e6640a937 Verbessere Benutzerkommunikation im ChatRoom durch optimierte Nachrichtenreihenfolge
- Füge Debug-Ausgaben hinzu, um den Ablauf beim Hinzufügen neuer Benutzer zu protokollieren.
- Sende wichtige Nachrichten (Raum- und Benutzerlisten) an den neuen Benutzer, bevor der checkerTask-Thread gestartet wird, um sicherzustellen, dass alle relevanten Informationen rechtzeitig bereitgestellt werden.
- Implementiere eine kurze Verzögerung, um den Abschluss des WebSocket-Handshakes zu gewährleisten, bevor Nachrichten gesendet werden.
2025-09-05 11:10:03 +02:00
Torsten Schulz (local)
9e5d53c188 Füge kurze Verzögerung im ChatUser hinzu und entferne überflüssige Socket-Validierung
- Ergänze eine Wartezeit von 500 Millisekunden, um den Abschluss des WebSocket-Handshakes sicherzustellen.
- Entferne die zusätzliche Socket-Validierung, um den Code zu vereinfachen und die Lesbarkeit zu verbessern.
2025-09-05 10:55:08 +02:00
Torsten Schulz (local)
411a4c52c7 Verbessere Socket-Validierung und Fehlerbehandlung in ChatUser und Base
- Füge Überprüfungen hinzu, um sicherzustellen, dass der Socket gültig ist, bevor Nachrichten gesendet werden.
- Implementiere detaillierte Fehlerprotokollierung für verschiedene Socket-Fehler, um die Diagnose zu erleichtern.
- Ergänze eine kurze Verzögerung im ChatRoom, um den Abschluss des WebSocket-Handshakes zu gewährleisten.
2025-09-05 10:42:23 +02:00
Torsten Schulz (local)
dce5a56316 Ergänze Unterstützung für Datenbankintegration in ChatRoom und ChatUser
- Implementiere einen neuen Konstruktor in der Klasse `ChatUser`, der eine Datenbankverbindung akzeptiert, um Benutzerinformationen zu laden.
- Füge eine Methode `setDatabase` in der Klasse `ChatRoom` hinzu, um die Datenbankverbindung zu setzen.
- Aktualisiere die Logik in `ChatRoom`, um den neuen Konstruktor zu verwenden, wenn eine Datenbankverbindung vorhanden ist, andernfalls wird der alte Konstruktor verwendet.
- Stelle sicher, dass die Datenbankverbindung in den Server- und SSLServer-Klassen beim Erstellen neuer Räume gesetzt wird.
2025-09-05 09:56:14 +02:00
Torsten Schulz (local)
e38cd6ef9d Füge Fallback-Logik für SSL-Server ohne Elternobjekt hinzu
- Implementiere eine Bedingung, die sicherstellt, dass bei fehlendem Elternobjekt ein Standardbenutzer und ein Token generiert werden.
- Sende eine Nachricht mit dem generierten Token, um die Benutzerverwaltung zu verbessern.
2025-09-05 09:34:38 +02:00
Torsten Schulz (local)
39780197f8 Verbessere Benutzerverwaltung in ChatRoom durch Überprüfung auf Elternobjekt
- Füge eine Bedingung hinzu, um sicherzustellen, dass `_parent` vor dem Abrufen der Raumliste nicht null ist, um potenzielle Fehler zu vermeiden.
- Entferne überflüssige Kommentare und verbessere die Lesbarkeit des Codes in der `chat_room.cpp`.
2025-09-05 09:16:27 +02:00
Torsten Schulz (local)
62a5c70c8c Ergänze Unterstützung für das Laden von Räumen aus der Datenbank in der createRooms-Methode des SSLServers
- Implementiere eine Fehlerbehandlung, um Räume aus der Datenbank zu laden und bei einem Fehler auf die Konfiguration zurückzugreifen.
- Füge detaillierte Logging-Ausgaben hinzu, um den Prozess des Ladens von Räumen zu verfolgen und die Anzahl der geladenen Räume zu dokumentieren.
2025-09-04 16:55:23 +02:00
Torsten Schulz (local)
cf86d2132b Füge Unterstützung für das Neuladen des Servers hinzu
- Ergänze die `ExecReload`-Anweisung in `install.sh`, um das Neuladen des Servers bei Empfang des SIGUSR1-Signals zu ermöglichen.
- Dies verbessert die Handhabung von Konfigurationsänderungen ohne einen vollständigen Neustart des Servers.
2025-09-04 16:54:41 +02:00
Torsten Schulz (local)
f346ea1ec4 Füge erweitertes Logging für Raumverwaltung im SSLServer hinzu
- Ergänze Debug-Ausgaben in der Methode `handleWebSocketMessage`, um verfügbare Räume und den Status der Benutzeranmeldung zu protokollieren.
- Füge Logging in der Methode `createRooms` hinzu, um den Prozess der Raumerstellung aus der Konfiguration zu verfolgen.
- Implementiere zusätzliche Ausgaben in der Methode `reloadRooms`, um die Anzahl der geladenen Räume aus der Datenbank zu dokumentieren und Fehlerfälle zu behandeln.
2025-09-04 16:48:05 +02:00
Torsten Schulz (local)
08d6a0c93b Füge Unterstützung für das Neuladen von Räumen aus der Datenbank hinzu
- Implementiere die Methode `reloadRooms` in den Klassen `Server` und `SSLServer`, um Räume aus der Datenbank neu zu laden.
- Ergänze einen Signalhandler in `main.cpp`, um das Neuladen der Räume bei Empfang von SIGUSR1 zu ermöglichen.
- Füge die Methode `getRooms` in der `Database`-Klasse hinzu, um Räume aus der Datenbank abzurufen.
- Aktualisiere die Header-Dateien entsprechend, um die neuen Methoden zu berücksichtigen.
2025-09-04 16:43:33 +02:00
Torsten Schulz (local)
a199352f61 Verbessere WebSocket-Nachrichtensystem und Raumverwaltung im SSLServer
- Ändere die Fehlerbehandlung, um Fehlermeldungen direkt über WebSocket zu senden, anstatt sie über den Socket zu übertragen.
- Implementiere die gleichzeitige Übertragung von "init_success" und "room_entered" Nachrichten an den Client.
- Füge eine Logik hinzu, um einen Standardraum zu erstellen, falls keine Räume konfiguriert sind, und protokolliere die Erstellung des Standardraums.
2025-09-04 15:30:17 +02:00
Torsten Schulz (local)
34edbac487 Ändere WebSocket-Protokollnamen und verbessere Server-Logging
- Aktualisiere den Protokollnamen von "yourchat-protocol" auf "chat" für bessere Klarheit.
- Füge WebSocket-spezifische Optionen hinzu, um Sicherheitspraktiken zu verbessern.
- Ergänze Logging für HTTP-Anfragen, um den Upgrade-Prozess zu WebSocket zu verfolgen.
2025-09-04 15:10:40 +02:00
Torsten Schulz (local)
6b49fff85e Verbessere SSLServer-Fehlerbehandlung und füge Verzögerung beim Start hinzu
- Ergänze eine Fehlerbehandlung im SSLServer-Thread, um Ausnahmen zu protokollieren, anstatt sie auszulösen.
- Modifiziere die `startServer`-Methode, um bei einem Fehler beim Erstellen des LWS-Kontexts eine Fehlermeldung auszugeben und den Server ordnungsgemäß zu stoppen.
- Füge eine Verzögerung von 100 Millisekunden in `main.cpp` hinzu, um dem SSL-Server Zeit zum Initialisieren zu geben.
2025-09-04 14:47:27 +02:00
Torsten Schulz (local)
2c6901f989 Verbessere Shutdown-Logik und Ressourcenbereinigung in Server- und ChatRoom-Klassen
- Implementiere eine ordnungsgemäße Bereinigung von Server- und ChatRoom-Ressourcen beim Herunterfahren.
- Aktualisiere die Destruktoren in `ChatRoom` und `Server`, um sicherzustellen, dass alle Benutzer-Threads gestoppt und aufgeräumt werden.
- Füge Überprüfungen hinzu, um doppelte Stop-Vorgänge zu vermeiden und die Stabilität zu erhöhen.
- Optimiere die Logging-Ausgaben für den Server-Stopp-Prozess zur besseren Nachverfolgbarkeit.
2025-09-04 14:32:12 +02:00
Torsten Schulz (local)
8d0d1bc187 Implementiere sanften Shutdown und verbessere Server-Stopp-Logik
- Füge Signalhandler in `main.cpp` hinzu, um einen sanften Shutdown bei SIGINT und SIGTERM zu ermöglichen.
- Aktualisiere die `Server`- und `SSLServer`-Klassen, um die Stopp-Logik zu verbessern und Threads ordnungsgemäß zu beenden.
- Optimiere die Timeout-Werte in der `run`-Methode für eine schnellere Reaktion auf Shutdown-Signale.
- Ergänze Logging für den Server-Stopp-Prozess zur besseren Nachverfolgbarkeit.
2025-09-04 14:22:01 +02:00
Torsten Schulz (local)
c9235034b1 Ergänze Header-Dateien um JSON-Unterstützung und füge die Methode generateToken hinzu
- Füge die JSON-Bibliothek in `ssl_server.h` hinzu, um JSON-Funktionalitäten zu unterstützen.
- Ergänze die Methode `generateToken` in `base.h`, um die Token-Generierung zu ermöglichen.
- Aktualisiere die Header-Dateien, um neue Methoden und Abhängigkeiten zu berücksichtigen.
2025-09-04 12:24:43 +02:00
Torsten Schulz (local)
b394b5d8a1 Füge SSLServer-Klasse hinzu und verbessere SSL/TLS-Unterstützung
- Integriere die `SSLServer`-Klasse zur Handhabung von SSL/TLS-Verbindungen.
- Aktualisiere `main.cpp`, um die SSL-Server-Instanz zu erstellen und zu starten, wenn SSL aktiviert ist.
- Modifiziere die `handleWebSocketMessage`-Methode in `ssl_server.cpp`, um die Benutzerverwaltung zu optimieren.
- Ergänze die `generateToken`-Methode in `base.cpp`, um Token für Benutzer zu generieren.
- Aktualisiere die Header-Dateien, um neue Methoden und Klassen zu berücksichtigen.
2025-09-04 12:21:52 +02:00
Torsten Schulz (local)
d619d70a76 Füge Unterstützung für SSL/TLS in die Konfiguration und das Build-System ein
- Integriere die libwebsockets-Bibliothek für SSL/TLS WebSocket-Unterstützung in `CMakeLists.txt`.
- Aktualisiere `chatconfig.json`, um SSL-Optionen wie `ssl_enabled`, `ssl_cert_path` und `ssl_key_path` hinzuzufügen.
- Ergänze das `deploy.sh`-Skript um einen Schritt zur optionalen Einrichtung von SSL/TLS.
- Modifiziere `update_config.sh`, um die SSL-Konfiguration in die Servereinstellungen zu integrieren.
- Implementiere eine Überprüfung in `main.cpp`, um den SSL-Status zu prüfen und entsprechende Meldungen auszugeben.
2025-09-04 12:05:22 +02:00
Torsten Schulz (local)
ec939bb506 Aktualisiere Datenbankkonfiguration und verbessere JSON-Merge-Skript
- Füge neue Felder `host`, `port` und `database` zur Datenbankkonfiguration in `chatconfig.json` hinzu.
- Implementiere eine Funktion im `update_config.sh`-Skript, um den `connectstring` zu parsen und die neuen Felder automatisch zu befüllen, falls sie fehlen.
- Aktualisiere die `Database`-Klasse, um die neuen Konfigurationsparameter zu verwenden.
2025-09-01 16:43:32 +02:00
Torsten Schulz (local)
f5a5f5ae2c Aktualisiere Installations- und Konfigurationsskripte zur Verwendung eines neuen Pfads für die Konfigurationsdatei
- Ändere den Zielpfad der Konfigurationsdatei in `install.sh` und `update_config.sh` von `/opt/yourchat/config/chatconfig.json` nach `/etc/yourpart/chatconfig.json`.
- Füge die Erstellung des Verzeichnisses `/etc/yourpart` im Installationsskript hinzu und passe die Berechtigungen entsprechend an.
2025-09-01 16:39:52 +02:00
Torsten Schulz (local)
1a94e7cd45 Füge Korrektur für den Pfad der Konfigurationsdatei hinzu
- Implementiere eine Überprüfung in den Skripten `install.sh` und `update_config.sh`, um sicherzustellen, dass die Konfigurationsdatei an dem richtigen Ort liegt. Falls nicht, wird die Datei verschoben und die Berechtigungen sowie der Eigentümer entsprechend angepasst.
2025-09-01 16:13:45 +02:00
Torsten Schulz (local)
ff6ced7587 Aktualisiere Installationsskript für Abhängigkeiten: Setze GCC-13 und G++-13 als Standardcompiler und verbessere die Alternativenverwaltung. 2025-09-01 15:59:53 +02:00
Torsten Schulz (local)
d92c40748e Implementiere Benutzerverbindungskontrolle und verbessere Nachrichtenverwaltung
- Füge die Methode `removeUserDisconnected` in der ChatRoom-Klasse hinzu, um Benutzer bei Verbindungsabbrüchen zu entfernen und entsprechende Nachrichten zu senden.
- Aktualisiere die ChatUser-Klasse, um einen Token-Getter bereitzustellen und die Verbindungsprüfung zu optimieren.
- Ändere die Server-Klasse, um die Benutzerverwaltung bei Raumwechseln zu verbessern und Debug-Informationen hinzuzufügen.
- Optimiere die Socket-Optionen für eine schnellere Fehlererkennung und verbessere die Handhabung von Anfragen.
2025-09-01 15:30:19 +02:00
Torsten Schulz (local)
7338f1a740 Füge Unterstützung für Würfelspiele hinzu und verbessere Debugging-Optionen
- Implementiere neue Funktionen in der ChatRoom-Klasse für das Starten, Rollen und Beenden von Würfelspielen.
- Füge eine Option zur Aktivierung von Debug-Logging in CMake hinzu, um die Entwicklung zu erleichtern.
- Aktualisiere die ChatUser-Klasse, um die Interaktion mit dem Würfelspiel zu ermöglichen.
- Verbessere die Socket-Verwaltung im Server, um WebSocket-Verbindungen zu unterstützen und die Handhabung von Anfragen zu optimieren.
- Aktualisiere die Konfiguration, um die neue Funktionalität zu unterstützen und die Benutzererfahrung zu verbessern.
2025-08-16 22:43:08 +02:00
Torsten Schulz (local)
864d86aa09 Refactor chat system: Introduce ChatRoom and ChatUser classes
- Created ChatRoom class to manage chat room functionalities, including user management, message handling, and game mechanics.
- Developed ChatUser class to represent individual users, handling user-specific actions and interactions within chat rooms.
- Implemented a Config class for loading configuration settings from a JSON file.
- Established a Server class to manage connections, handle requests, and facilitate communication between users and chat rooms.
- Introduced a Database class for database interactions, utilizing PostgreSQL for user and room data management.
- Added utility functions in the Base class for JSON handling and socket communication.
- Created Object classes for Room and User to encapsulate their properties and behaviors.
- Updated main function to initialize server and load chat rooms from configuration.
2025-08-11 16:07:15 +02:00
Torsten Schulz (local)
6ecdbda9de Refactor chat room implementation
- Renamed Room class to ChatRoom and updated all references accordingly.
- Removed the old room.cpp and room.h files.
- Updated CMakeLists.txt to include chat_room.cpp instead of room.cpp.
- Modified ChatUser class to use shared_ptr<ChatRoom> instead of shared_ptr<Room>.
- Updated Server class to create instances of ChatRoom instead of Room.
- Removed User class and its associated files, integrating its functionality into ChatUser.
- Ensured all relevant includes and dependencies are updated to reflect the new class structure.
2025-08-11 15:03:11 +02:00
Torsten Schulz (local)
b81f2de10f Refactor project structure: replace User class with ChatUser, integrate Database class, and update CMake configuration for new files 2025-08-11 14:48:45 +02:00
Torsten Schulz (local)
89956bd01a Refactor Server class: move createRooms call outside constructor and update access modifier for _socket 2025-08-11 11:45:09 +02:00
Torsten Schulz
f44d780537 Update CMake configuration and refactor code to use smart pointers for memory management 2025-08-11 11:15:54 +02:00
Torsten Schulz
ba6b788075 CMake instead of qmake 2020-08-07 10:18:51 +02:00
Torsten Schulz
0007ea7a81 changed c++ version to c++20 2020-06-17 14:33:08 +02:00
Torsten Schulz
626b69e149 changed compiler 2017-11-28 22:42:37 +01:00
Torsten Schulz
c0a8fe55f8 Test 2017-10-12 15:00:18 +02:00
Torsten Schulz
57ec9c2cb6 Code refactoring 2017-10-12 14:49:07 +02:00
Torsten Schulz
520f3106e3 Added user list for room 2017-08-04 14:47:55 +02:00
Torsten Schulz
48e2ff3885 Removed debug output 2017-07-28 21:35:31 +02:00
Torsten Schulz
984f39479f Added some functionality 2017-07-28 20:14:51 +02:00
Torsten Schulz
b9d2b3e347 Room change, room list with flags 2017-07-24 23:41:12 +02:00
Torsten Schulz
105232a9e3 Added dice, added check for room access 2017-07-22 22:24:38 +02:00
Torsten Schulz
b5b4c94f65 Receive and send messages 2017-07-21 21:49:19 +02:00
Torsten Schulz
922ee7ac12 Ignore for git 2017-07-18 23:52:31 +02:00
Torsten Schulz
26ab29859d Initial submit 2017-07-18 23:51:56 +02:00
Torsten Schulz
071d70ecf6 Initial submit 2017-07-18 23:49:40 +02:00