Implementierung Wissensmanagement
Dieser Commit ist enthalten in:
@ -21,7 +21,9 @@ class SyncManager {
|
||||
|
||||
// Initialize Socket.io connection
|
||||
async connect() {
|
||||
if (this.socket?.connected) {
|
||||
// Verhindere doppelte Verbindungen (auch während des Verbindungsaufbaus)
|
||||
if (this.socket) {
|
||||
console.log('[Sync] Socket already exists, skipping connect');
|
||||
return;
|
||||
}
|
||||
|
||||
@ -102,8 +104,15 @@ class SyncManager {
|
||||
console.error('[Sync] Socket error:', error);
|
||||
|
||||
if (error.type === 'auth') {
|
||||
// Auth failed, logout
|
||||
window.dispatchEvent(new CustomEvent('auth:logout'));
|
||||
// Nur ausloggen wenn wir wirklich nicht eingeloggt sind
|
||||
// (verhindert Logout durch alte Socket-Verbindungen nach neuem Login)
|
||||
const currentToken = localStorage.getItem('auth_token');
|
||||
if (!currentToken) {
|
||||
console.log('[Sync] Auth error and no token, triggering logout');
|
||||
window.dispatchEvent(new CustomEvent('auth:logout'));
|
||||
} else {
|
||||
console.log('[Sync] Auth error ignored - new login occurred');
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@ -546,9 +555,8 @@ class SyncManager {
|
||||
const syncManager = new SyncManager();
|
||||
|
||||
// Listen for auth events
|
||||
window.addEventListener('auth:login', () => {
|
||||
syncManager.connect();
|
||||
});
|
||||
// Hinweis: syncManager.connect() wird NICHT hier aufgerufen,
|
||||
// sondern in app.js initializeApp() um doppelte Verbindungen zu vermeiden
|
||||
|
||||
window.addEventListener('auth:logout', () => {
|
||||
syncManager.disconnect();
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren