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.
This commit is contained in:
Torsten Schulz (local)
2025-09-01 15:30:19 +02:00
parent 7338f1a740
commit d92c40748e
12 changed files with 868 additions and 33 deletions

52
deploy/update.sh Executable file
View File

@@ -0,0 +1,52 @@
#!/bin/bash
# YourChat Update Script
# Für zukünftige Updates der Anwendung
set -e # Beende bei Fehlern
echo "=== YourChat - Update Script ==="
echo "Dieses Script aktualisiert eine bestehende Installation."
echo ""
# Prüfe ob wir im richtigen Verzeichnis sind
if [ ! -f "CMakeLists.txt" ]; then
echo "Fehler: CMakeLists.txt nicht gefunden. Bitte im YourChat-Root-Verzeichnis ausführen."
exit 1
fi
# Prüfe ob Anwendung installiert ist
if [ ! -f "/opt/yourchat/yourchat" ]; then
echo "Fehler: YourChat ist nicht installiert. Bitte zuerst ./deploy/deploy.sh ausführen."
exit 1
fi
echo "=== Service stoppen ==="
sudo systemctl stop yourchat || true
echo "=== Anwendung bauen ==="
./deploy/build.sh
echo "=== Anwendung aktualisieren ==="
echo "Kopiere neue Binaries..."
sudo cp build/yourchat /opt/yourchat/
sudo cp build/ws_probe /opt/yourchat/
sudo chmod +x /opt/yourchat/yourchat
sudo chmod +x /opt/yourchat/ws_probe
sudo chown yourchat:yourchat /opt/yourchat/yourchat
sudo chown yourchat:yourchat /opt/yourchat/ws_probe
echo "=== Konfiguration aktualisieren ==="
./deploy/update_config.sh
echo "=== Service neu starten ==="
sudo systemctl start yourchat
echo "=== Update abgeschlossen! ==="
echo ""
echo "Status prüfen:"
sudo systemctl status yourchat
echo ""
echo "Logs anzeigen:"
echo "sudo journalctl -u yourchat -f"