fix(store): Verbesserung der Socket.io- und WebSocket-Verbindungen

- 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.
This commit is contained in:
Torsten Schulz (local)
2025-09-03 16:46:39 +02:00
parent 935787be62
commit 80d7a85902

View File

@@ -85,20 +85,27 @@ const store = createStore({
if (currentSocket) { if (currentSocket) {
currentSocket.disconnect(); currentSocket.disconnect();
} }
console.log('🔌 Initializing Socket.io connection to:', import.meta.env.VITE_DAEMON_SOCKET);
const socket = io(import.meta.env.VITE_DAEMON_SOCKET, { const socket = io(import.meta.env.VITE_DAEMON_SOCKET, {
secure: true, secure: true,
transports: ['websocket', 'polling'] transports: ['websocket', 'polling']
}); });
socket.on('connect', () => { socket.on('connect', () => {
console.log('✅ Socket.io connected successfully');
socket.emit('setUserId', state.user.id); // Sende user.id, wenn user vorhanden ist socket.emit('setUserId', state.user.id); // Sende user.id, wenn user vorhanden ist
}); });
socket.on('disconnect', (reason) => { socket.on('disconnect', (reason) => {
console.warn('Socket.io disconnected:', reason); console.warn('Socket.io disconnected:', reason);
retryConnection(connectSocket); retryConnection(connectSocket);
}); });
socket.on('connect_error', (error) => {
console.error('❌ Socket.io connection error:', error);
console.error('❌ URL attempted:', import.meta.env.VITE_DAEMON_SOCKET);
});
commit('setSocket', socket); commit('setSocket', socket);
}; };
@@ -121,9 +128,12 @@ const store = createStore({
if (currentDaemonSocket) { if (currentDaemonSocket) {
currentDaemonSocket.disconnect(); currentDaemonSocket.disconnect();
} }
console.log('🔌 Initializing Daemon WebSocket connection to:', import.meta.env.VITE_DAEMON_SOCKET);
try {
const daemonSocket = new WebSocket(import.meta.env.VITE_DAEMON_SOCKET); const daemonSocket = new WebSocket(import.meta.env.VITE_DAEMON_SOCKET);
daemonSocket.onopen = () => { daemonSocket.onopen = () => {
console.log('✅ Daemon WebSocket connected successfully');
const payload = JSON.stringify({ const payload = JSON.stringify({
event: 'setUserId', event: 'setUserId',
data: { userId: state.user.id } data: { userId: state.user.id }
@@ -132,12 +142,12 @@ const store = createStore({
}; };
daemonSocket.onclose = (event) => { daemonSocket.onclose = (event) => {
console.warn('Daemon WebSocket disconnected:', event.reason); console.warn('Daemon WebSocket disconnected:', event.reason);
retryConnection(connectDaemonSocket); retryConnection(connectDaemonSocket);
}; };
daemonSocket.onerror = (error) => { daemonSocket.onerror = (error) => {
console.error('Daemon WebSocket error:', error); console.error('Daemon WebSocket error:', error);
retryConnection(connectDaemonSocket); retryConnection(connectDaemonSocket);
}; };
@@ -155,6 +165,11 @@ const store = createStore({
}); });
commit('setDaemonSocket', daemonSocket); commit('setDaemonSocket', daemonSocket);
} catch (error) {
console.error('❌ Failed to create Daemon WebSocket:', error);
console.error('❌ URL attempted:', import.meta.env.VITE_DAEMON_SOCKET);
retryConnection(connectDaemonSocket);
}
}; };
const retryConnection = (reconnectFn) => { const retryConnection = (reconnectFn) => {