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:
@@ -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,40 +128,48 @@ const store = createStore({
|
|||||||
if (currentDaemonSocket) {
|
if (currentDaemonSocket) {
|
||||||
currentDaemonSocket.disconnect();
|
currentDaemonSocket.disconnect();
|
||||||
}
|
}
|
||||||
const daemonSocket = new WebSocket(import.meta.env.VITE_DAEMON_SOCKET);
|
console.log('🔌 Initializing Daemon WebSocket connection to:', import.meta.env.VITE_DAEMON_SOCKET);
|
||||||
|
try {
|
||||||
|
const daemonSocket = new WebSocket(import.meta.env.VITE_DAEMON_SOCKET);
|
||||||
|
|
||||||
daemonSocket.onopen = () => {
|
daemonSocket.onopen = () => {
|
||||||
const payload = JSON.stringify({
|
console.log('✅ Daemon WebSocket connected successfully');
|
||||||
event: 'setUserId',
|
const payload = JSON.stringify({
|
||||||
data: { userId: state.user.id }
|
event: 'setUserId',
|
||||||
});
|
data: { userId: state.user.id }
|
||||||
daemonSocket.send(payload);
|
});
|
||||||
};
|
daemonSocket.send(payload);
|
||||||
|
};
|
||||||
|
|
||||||
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);
|
||||||
};
|
};
|
||||||
|
|
||||||
daemonSocket.addEventListener('message', (event) => {
|
daemonSocket.addEventListener('message', (event) => {
|
||||||
const message = event.data;
|
const message = event.data;
|
||||||
if (message === "ping") {
|
if (message === "ping") {
|
||||||
daemonSocket.send("pong");
|
daemonSocket.send("pong");
|
||||||
} else {
|
} else {
|
||||||
try {
|
try {
|
||||||
const data = JSON.parse(message);
|
const data = JSON.parse(message);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("Error parsing message:", error);
|
console.error("Error parsing message:", error);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
});
|
||||||
});
|
|
||||||
|
|
||||||
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) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user