Änderungen:
- Der Daemon WebSocket-URL wurde von 'wss' auf 'ws' geändert, um die Verbindung zu optimieren.
- Der WebSocket wird nun ohne spezifisches Protokoll initialisiert, um Tests zu erleichtern.
- Zusätzliche Protokollausgaben wurden hinzugefügt, um Browserinformationen bei Verbindungsfehlern zu dokumentieren.
Diese Anpassungen verbessern die Fehlerdiagnose und die Flexibilität der WebSocket-Verbindung.
Änderungen:
- Der Daemon WebSocket wurde aus der Anwendung entfernt, um die Komplexität zu reduzieren und die Stabilität zu erhöhen.
- Die Event-Verarbeitung in StatusBar.vue und BranchView.vue wurde aktualisiert, um Socket.io für die Registrierung und Verarbeitung von Live-Events zu verwenden.
- Protokollausgaben wurden hinzugefügt, um den Empfang und die Verarbeitung von Events zu dokumentieren.
Diese Anpassungen verbessern die Nachvollziehbarkeit der Event-Verarbeitung und vereinfachen die Codebasis.
Änderungen:
- In der StatusBar.vue wurden Protokollausgaben hinzugefügt, um den Start und die Ergebnisse des fetchStatus-Aufrufs zu dokumentieren.
- In der BranchView.vue wurden Protokollausgaben hinzugefügt, um den Status der Aktualisierung der verschiedenen Sektionen zu verfolgen und sicherzustellen, dass die Referenzen verfügbar sind.
Diese Anpassungen erhöhen die Nachvollziehbarkeit der Eventverarbeitung und erleichtern die Fehlersuche.
Änderungen:
- In der StatusBar.vue wurden Protokollausgaben hinzugefügt, um den Event-Typ und den Erfolg oder Fehler des fetchStatus-Aufrufs zu dokumentieren.
- In der BranchView.vue wurden Protokollausgaben hinzugefügt, um den Event-Typ und den Status der Aktualisierung aller Sektionen zu protokollieren.
Diese Anpassungen verbessern die Nachvollziehbarkeit der Eventverarbeitung und erleichtern die Fehlersuche.
Änderung:
- Die Methode `beforeUnmount` wurde aktualisiert, um die Abmeldung von Socket.io-Events zu vereinfachen, indem die spezifischen Event-Namen entfernt wurden. Dies verbessert die Lesbarkeit und Wartbarkeit des Codes.
- Der Aufruf von `loadStatus` wurde durch `fetchStatus` ersetzt, um die Konsistenz mit der neuen Event-Verarbeitung zu gewährleisten.
Diese Anpassung sorgt für eine klarere Struktur und eine einheitliche Handhabung der Socket.io-Events in der StatusBar-Komponente.
Änderung:
- In den Views StatusBar, BankView, BranchView, DirectorView, FamilyView, HealthView, HouseView und NobilityView wurde eine neue Methode `handleEvent` hinzugefügt, um die Verarbeitung von empfangenen Socket.io-Events zu zentralisieren.
- Die spezifischen Event-Handler wurden aktualisiert, um die `handleEvent`-Methode aufzurufen, was die Lesbarkeit und Wartbarkeit des Codes verbessert.
Diese Anpassung sorgt für eine konsistentere Handhabung von Socket.io-Events und erleichtert zukünftige Erweiterungen und Anpassungen der Event-Logik.
Änderung:
- In den Views BankView, DirectorView, FamilyView, HealthView, HouseView und NobilityView wurden Protokollausgaben hinzugefügt, um empfangene Daten von den Socket.io-Events 'falukantUpdateStatus' und 'familychanged' zu dokumentieren.
- Diese Anpassung verbessert die Nachvollziehbarkeit der Datenaktualisierungen und erleichtert die Fehlersuche bei der Eventverarbeitung.
Diese Änderungen sorgen für eine bessere Transparenz und Debugging-Möglichkeiten in der Anwendung.
Änderung:
- Die Logik zur Abmeldung von WebSocket-Events wurde vereinfacht, indem die spezifischen Event-Namen direkt in der Methode `beforeUnmount` abgemeldet werden. Dies verbessert die Lesbarkeit und Wartbarkeit des Codes.
Diese Anpassung sorgt für eine klarere Struktur und effizientere Handhabung der WebSocket-Events.
Änderung:
- Alle Views wurden aktualisiert, um den Daemon WebSocket zu deaktivieren und stattdessen Socket.io für die Event-Registrierung zu verwenden.
- Eine neue Methode `setupSocketEvents` wurde hinzugefügt, um die Socket.io-Events zu registrieren und Protokollausgaben für den Status der Registrierung bereitzustellen.
- Die Logik zur Handhabung von WebSocket-Events wurde vereinfacht und verbessert, um die Stabilität und Nachvollziehbarkeit zu erhöhen.
Diese Anpassung sorgt für eine konsistentere Handhabung von WebSocket-Events und verbessert die Benutzererfahrung durch zuverlässigere Datenaktualisierungen.
Änderung:
- Der Daemon WebSocket wurde aufgrund von CORS- und Protokollproblemen deaktiviert.
- Alle WebSocket-Interaktionen wurden auf Socket.io umgestellt, um die Funktionalität weiterhin zu gewährleisten.
- Entsprechende Protokollausgaben wurden hinzugefügt, um den Status der Deaktivierung zu dokumentieren.
Diese Anpassung verbessert die Stabilität der Anwendung und sorgt für eine konsistente Handhabung von WebSocket-Events.
Änderung:
- In der Klasse FalukantController wurden Protokollausgaben hinzugefügt, um die Aufrufe der Methoden getDirectorProposals und getGifts zu verfolgen.
- In der Klasse FalukantService wurde eine Protokollausgabe hinzugefügt, um die Aufrufe der Methode getFalukantUserByHashedId zu dokumentieren und das Ergebnis zu protokollieren.
Diese Anpassung verbessert die Nachvollziehbarkeit der Methodenaufrufe und erleichtert die Fehlersuche im Backend.
Änderung:
- Die WebSocket-Verbindung zum Daemon verwendet nun zuerst das 'yourpart-protocol' und versucht bei einem Protokollfehler eine Verbindung ohne Protokoll.
- Es wurde eine Retry-Logik mit exponentiellem Backoff hinzugefügt, um die Verbindung bei Fehlern stabiler zu gestalten.
- Zusätzliche Protokollausgaben für Fehler- und Verbindungsdetails wurden implementiert, um die Fehlersuche zu erleichtern.
Diese Anpassung verbessert die Zuverlässigkeit der WebSocket-Verbindung und die Fehlerdiagnose.
Änderung:
- Die Logik zur Extraktion der Benutzerliste wurde aktualisiert, um auch `userlist` aus `obj.message` zu berücksichtigen. Dies verbessert die Robustheit der Benutzerlistenverarbeitung und stellt sicher, dass alle relevanten Benutzer korrekt angezeigt werden.
Diese Anpassung sorgt dafür, dass die Benutzerliste im Chat präziser und vollständiger ist.
Problem:
- Chat WebSocket versuchte wss://www.your-part.de (ohne Port)
- Sollte wss://www.your-part.de:1235 sein (direkte Verbindung)
Lösung:
- getChatWsUrl() verwendet jetzt Port 1235 für Production
- getChatWsCandidates() verwendet Port 1235 für alle Hosts
- Direkte Verbindung zum Chat-Server auf Port 1235
Chat-Server:
- Läuft mit SSL auf Port 1235
- yourchat.service: SSL WebSocket Server starting on port 1235
- Frontend: wss://www.your-part.de:1235 mit 'chat' Protokoll
Änderung:
- Die WebSocket-Verbindung verwendet jetzt die Variable `daemonUrl`, die entweder den Wert von `VITE_DAEMON_SOCKET` oder einen Standardwert hat. Dies verbessert die Flexibilität und stellt sicher, dass die Verbindung auch bei fehlender Umgebungsvariable funktioniert.
Diese Anpassung sorgt dafür, dass die WebSocket-Verbindung stabiler und zuverlässiger ist.
Änderung:
- VITE_DAEMON_SOCKET wurde von wss://www.your-part.de/ws auf wss://www.your-part.de:4551 geändert, um die Verbindung zum Daemon-Service zu verbessern.
Diese Anpassung stellt sicher, dass die WebSocket-Verbindung korrekt konfiguriert ist und die Kommunikation mit dem Daemon-Service reibungslos funktioniert.
Änderung:
- VITE_CHAT_WS_URL wurde von wss://www.your-part.de/ws auf wss://www.your-part.de:1235 geändert, um die Verbindung zu verbessern.
Diese Anpassung stellt sicher, dass die WebSocket-Verbindung korrekt konfiguriert ist und die Kommunikation mit dem Daemon-Service reibungslos funktioniert.
Problem:
- Frontend versuchte native WebSocket-Verbindung zu /ws/ aufzubauen
- Backend hat nur Socket.io, keine native WebSocket-Unterstützung für /ws/
Lösung:
- Daemon WebSocket verwendet jetzt Socket.io statt native WebSocket
- Beide Verbindungen (Socket.io und Daemon) verwenden jetzt Socket.io
- Event-Handler von WebSocket auf Socket.io umgestellt
Dies löst die WebSocket-Verbindungsfehler, da der Backend-Server
nur Socket.io unterstützt, keine nativen WebSockets.
Apache-Konfiguration:
- Füge WebSocket-Proxy für /ws/ Pfad hinzu
- Leite WebSocket-Upgrade-Header korrekt weiter
Frontend-Konfiguration:
- Socket.io verwendet jetzt VITE_API_BASE_URL (über /socket.io/ Proxy)
- Daemon WebSocket verwendet wss://www.your-part.de/ws
- Chat WebSocket verwendet wss://www.your-part.de/ws
Dies löst die 'operation is insecure' Fehler und ermöglicht
WebSocket-Verbindungen über HTTPS.
- .env.local: Verwendet localhost:3001 für lokale Entwicklung
- .env.server: Verwendet wss:// für Produktionsumgebung
- Entferne backend/dist/ aus Git-Tracking
- Erweitere .gitignore um backend/dist/
- Hinzufügen von Konsolenprotokollen zur Überwachung der Verbindungsstatus für Socket.io und WebSocket.
- Fehlerbehandlung für Verbindungsfehler und -abbrüche verbessert.
- Sicherstellen, dass die Verbindungsversuche bei Fehlern korrekt behandelt werden.
- Änderung der Socket-URL von VITE_API_BASE_URL zu VITE_DAEMON_SOCKET zur Verbesserung der Sicherheit.
- Setzen von 'secure' auf true, um eine sichere Verbindung zu gewährleisten.
- Hinzufügen von Optionen für die WebSocket-Verbindung, um die Sicherheit und die Transportmethoden zu verbessern.
- Setzen von 'secure' auf false und Festlegen der Transports auf 'websocket' und 'polling'.
- Änderung des Verzeichnispfades im Deployment-Skript für das Frontend.
- Aktualisierung der API- und WebSocket-URLs in der .env.local-Datei auf die Produktionsumgebung.
- Entfernen des Standardwerts für die API-Basis-URL, um die Konfiguration flexibler zu gestalten.
- Sicherstellung, dass die URL korrekt auf die Backend-API verweist.
- Hinzufügen von Schritten zum Kopieren der Server-Umgebungsvariablen vor dem Neuaufbau des Frontends.
- Anpassung der Schritte zur Erstellung des Zielverzeichnisses und zum Löschen des alten Frontends.
- Wiederherstellung der lokalen .env-Datei nach dem Deployment.
- Hinzufügen von Konsolenausgaben zur Nachverfolgung des Ladevorgangs von Lagertypen und zur Überprüfung, ob neue Lagertypen hinzugefügt werden können.
- Anpassung der Bedingungen zur Anzeige des Hinzufügen-Buttons basierend auf dem Vorhandensein von Lagertypen und bestehenden Stocks in den Branches.
- Hinzufügen einer neuen Anzeige für den Fall, dass alle verfügbaren Lagertypen bereits vorhanden sind.
- Anpassung der Logik zur Überprüfung, ob neue Lagertypen hinzugefügt werden können.
- Aktualisierung der Übersetzungen in den Sprachdateien für die neuen Meldungen zur Lagerverwaltung.
- Implementierung von Methoden zur Hinzufügung und Abfrage von Lagerbeständen im AdminController und AdminService.
- Erweiterung der Routen im AdminRouter zur Unterstützung der neuen Lagerverwaltungsfunktionen.
- Anpassung der Benutzeroberfläche zur Integration eines Dialogs für die Lagerhinzufügung und zur Anzeige von Lagertypen.
- Aktualisierung der Übersetzungen in den Sprachdateien für die neuen Funktionen und Fehlermeldungen.
- Hinzufügen von Routen und Methoden zur Verwaltung von Niederlassungen und Lagerbeständen im AdminController und AdminService.
- Implementierung der Logik zum Abrufen von Niederlassungen und Aktualisieren von Lagerbeständen.
- Anpassung der Benutzeroberfläche zur Unterstützung der neuen Funktionen, einschließlich eines Tab-Systems zur Anzeige von Benutzerdaten und Niederlassungen.
- Aktualisierung der Übersetzungen für die neuen Funktionen in den Sprachdateien.
- Änderung der Rückgabe der API-Basis-URL, um den Root-Pfad zu verwenden, da API-Endpunkte bereits mit /api beginnen.
- Verbesserung der Klarheit in den Kommentaren zur Nutzung der API-Basis-URL in der Produktionsumgebung.
- Hinzufügen von Umgebungsvariablen zur Vite-Konfiguration für die Produktionsumgebung.
- Anpassung der API-Basis-URL in axios.js, um sicherzustellen, dass immer der Apache-Proxy für die Produktion verwendet wird.
- Hinzufügen neuer Abhängigkeiten in der package-lock.json, einschließlich @types/trusted-types und call-bind-apply-helpers.
- Aktualisierung der Versionen mehrerer Pakete, darunter brace-expansion, dompurify, express und express-session.
- Anpassung der API-Basis-URL in axios.js zur Unterstützung verschiedener Umgebungen.
- Verbesserung der WebSocket-URL-Konfiguration in chatWs.js für Produktionsumgebungen.
- Aktualisierung der Chat-Konfiguration in chatConfig.js zur Unterstützung von sicheren WebSocket-Verbindungen.
- Optimierung der Fall-Logik für Tiles, um sicherzustellen, dass leere Positionen korrekt gefüllt werden.
- Einführung einer neuen Methode zur Überprüfung und Auffüllung leerer gültiger Felder nach dem Fallen von Tiles.
- Anpassungen an der Animation und den Debug-Ausgaben zur besseren Nachverfolgbarkeit der Fall- und Auffüllprozesse.
- Verbesserung der Logik zur Handhabung von Tiles und deren Positionen im Spiel.
- Einführung einer neuen Methode zur Zählung von Zügen, die in verschiedenen Spielereignissen aufgerufen wird, um die Anzahl der Züge konsistent zu verfolgen.
- Anpassung mehrerer Methoden, um die Zug-Zähler-Logik zu zentralisieren und doppelte Erhöhungen zu vermeiden.
- Verbesserung der Debug-Ausgaben zur besseren Nachverfolgbarkeit der Zug-Zähler-Updates und Spielereignisse.
- Einführung eines Match-Zählers, der bei verschiedenen Spielereignissen erhöht wird, um die Anzahl der Matches zu verfolgen.
- Anpassungen in mehreren Methoden, um den Zähler nach Aktionen wie Bomben-Explosionen, Raketen-Starts und Regenbogen-Aktivierungen zu erhöhen.
- Verbesserung der Debug-Ausgaben zur besseren Nachverfolgbarkeit der Match-Zähler-Updates und Spielereignisse.
- Umstellung der Level-Initialisierung auf asynchrone Funktionen zur besseren Handhabung von Ladezeiten.
- Einführung neuer Methoden zur Überprüfung des Boards nach dem Füllen und nach der Initialisierung.
- Erweiterung der Logik zur Punktevergabe bei Matches und Regenbogen-Aktivierungen.
- Optimierung der Debug-Ausgaben zur Nachverfolgbarkeit von Spielereignissen und Match-Verarbeitungen.
- Anpassung der Animationen und Wartezeiten für eine flüssigere Spielerfahrung.
- Einführung von Regenbogen-Power-ups, die durch 5er-Matches aktiviert werden.
- Anpassung der Logik zur Erkennung und Priorisierung von 5er-Matches vor L-Form-Matches.
- Verbesserung der Darstellung und Animationen für neue Power-ups.
- Erweiterung der Debug-Ausgaben zur Nachverfolgbarkeit von Matches und Power-ups.
- Implementierung neuer Methoden zur Aktivierung und Handhabung von Regenbogen-Power-ups im Spiel.
- Hinzufügen von Regenbogen-Power-ups zur Spielmechanik, die durch 5er-Matches aktiviert werden.
- Anpassung der Logik zur Erkennung von 5er-Matches und deren Priorisierung vor L-Form-Matches.
- Verbesserung der Darstellung und Animationen für Bomben und Regenbogen-Power-ups.
- Erweiterung der Debug-Ausgaben zur besseren Nachverfolgbarkeit von Power-ups und Matches.
- Implementierung von neuen Methoden zur Aktivierung und Handhabung von Power-ups im Spiel.
- Überarbeitung der Logik zur Erkennung von L-Form-Matches, um die Überprüfung der vertikalen und horizontalen Linien zu verbessern.
- Anpassung der Darstellung von Tiles, um Power-Up-Tiles korrekt zu behandeln und die Benutzeroberfläche zu vereinheitlichen.
- Erweiterung der Debug-Ausgaben zur besseren Nachverfolgbarkeit von L-Form-Matches und deren Längen.
- Hinzufügen von Bomben als neues Power-Up, das durch Doppelklick aktiviert werden kann.
- Implementierung der Logik zur Erkennung und Verarbeitung von L-Form-Matches.
- Anpassungen an der Spielmechanik zur Verhinderung von Matches mit Power-Ups.
- Verbesserung der Benutzeroberfläche zur Anzeige von Bomben und deren Effekten.
- Erweiterung der Debug-Ausgaben zur besseren Nachverfolgbarkeit von Power-Ups und Matches.
- Implementierung neuer Raketen-Power-ups mit Logik zur Aktivierung durch Doppelklick oder Verschieben.
- Einführung von Animationen für Raketenexplosionen und -flüge zur Verbesserung der visuellen Effekte im Spiel.
- Erweiterung der Spielmechanik zur Handhabung von Raketen-Tiles und deren Interaktionen mit anderen Tiles.
- Anpassungen an der Benutzeroberfläche zur Anzeige von Raketen-Animationen und -Effekten.
- Implementierung einer Überprüfung, die sicherstellt, dass Raketen-Power-ups nicht in Kombination mit anderen Tiles gematcht werden können, um die Spielmechanik zu verbessern.
- Hinzufügen von Raketen-Power-ups für 4er-Matches, einschließlich Logik zur Erstellung und Anzeige dieser Power-ups.
- Anpassungen an der Darstellung von Tiles, um Raketen visuell hervorzuheben.
- Einführung neuer Soundeffekte für das Fallen von Tiles und die Erstellung von Power-ups.
- Verbesserung der Logik zur Handhabung von Matches, um 3er- und 4er-Matches zu berücksichtigen.
- Implementierung einer Methode zur Überprüfung und Auffüllung leerer gültiger Felder nach dem Fallen von Tiles.