Füge neue Modelle für Produktion, Inventar und kaufbare Bestände hinzu; aktualisiere bestehende Modelle und Routen
This commit is contained in:
@@ -12,6 +12,7 @@ const store = createStore({
|
||||
language: navigator.language.startsWith('de') ? 'de' : 'en',
|
||||
menu: JSON.parse(localStorage.getItem('menu')) || [],
|
||||
socket: null,
|
||||
daemonSocket: null,
|
||||
menuNeedsUpdate: false,
|
||||
},
|
||||
mutations: {
|
||||
@@ -50,11 +51,21 @@ const store = createStore({
|
||||
}
|
||||
state.socket = null;
|
||||
},
|
||||
setDaemonSocket(state, daemonSocket) {
|
||||
state.daemonSocket = daemonSocket;
|
||||
},
|
||||
clearDaemonSocket(state) {
|
||||
if (state.daemonSocket) {
|
||||
state.daemonSocket.disconnect();
|
||||
}
|
||||
state.daemonSocket = null;
|
||||
},
|
||||
},
|
||||
actions: {
|
||||
async login({ commit, dispatch }, user) {
|
||||
await commit('dologin', user);
|
||||
await dispatch('initializeSocket');
|
||||
await dispatch('initializeDaemonSocket');
|
||||
const socket = this.getters.socket;
|
||||
if (socket) {
|
||||
socket.emit('setUserId', user.id);
|
||||
@@ -63,19 +74,89 @@ const store = createStore({
|
||||
},
|
||||
logout({ commit }) {
|
||||
commit('clearSocket');
|
||||
commit('clearDaemonSocket');
|
||||
commit('dologout');
|
||||
router.push('/');
|
||||
},
|
||||
initializeSocket({ commit, state }) {
|
||||
if (state.isLoggedIn && state.user) {
|
||||
const socket = io(import.meta.env.VITE_API_BASE_URL);
|
||||
socket.on('connect', () => {
|
||||
socket.emit('setUserId', state.user.id);
|
||||
});
|
||||
socket.on('disconnect', (reason) => {
|
||||
console.warn('WebSocket disconnected:', reason);
|
||||
});
|
||||
commit('setSocket', socket);
|
||||
const connectSocket = () => {
|
||||
const socket = io(import.meta.env.VITE_API_BASE_URL);
|
||||
|
||||
socket.on('connect', () => {
|
||||
console.log('Socket.io connected');
|
||||
socket.emit('setUserId', state.user.id);
|
||||
});
|
||||
|
||||
socket.on('disconnect', (reason) => {
|
||||
console.warn('Socket.io disconnected:', reason);
|
||||
retryConnection(connectSocket);
|
||||
});
|
||||
|
||||
commit('setSocket', socket);
|
||||
};
|
||||
|
||||
const retryConnection = (reconnectFn) => {
|
||||
setTimeout(() => {
|
||||
console.log('Retrying Socket.io connection...');
|
||||
reconnectFn();
|
||||
}, 1000); // Retry every second
|
||||
};
|
||||
|
||||
connectSocket();
|
||||
}
|
||||
},
|
||||
initializeDaemonSocket({ commit, state }) {
|
||||
if (state.isLoggedIn && state.user) {
|
||||
const connectDaemonSocket = () => {
|
||||
const daemonSocket = new WebSocket(import.meta.env.VITE_DAEMON_SOCKET);
|
||||
|
||||
daemonSocket.onopen = () => {
|
||||
console.log('Daemon WebSocket connected');
|
||||
const payload = JSON.stringify({
|
||||
event: 'setUserId',
|
||||
data: { userId: state.user.id }
|
||||
});
|
||||
daemonSocket.send(payload);
|
||||
};
|
||||
|
||||
daemonSocket.onclose = (event) => {
|
||||
console.warn('Daemon WebSocket disconnected:', event.reason);
|
||||
retryConnection(connectDaemonSocket);
|
||||
};
|
||||
|
||||
daemonSocket.onerror = (error) => {
|
||||
console.error('Daemon WebSocket error:', error);
|
||||
retryConnection(connectDaemonSocket);
|
||||
};
|
||||
|
||||
daemonSocket.addEventListener('message', (event) => {
|
||||
const message = event.data;
|
||||
console.log(message);
|
||||
if (message === "ping") {
|
||||
console.log("Ping received, sending Pong...");
|
||||
daemonSocket.send("pong");
|
||||
} else {
|
||||
try {
|
||||
const data = JSON.parse(message);
|
||||
console.log("Message received:", data);
|
||||
} catch (error) {
|
||||
console.error("Error parsing message:", error);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
commit('setDaemonSocket', daemonSocket);
|
||||
};
|
||||
|
||||
const retryConnection = (reconnectFn) => {
|
||||
setTimeout(() => {
|
||||
console.log('Retrying Daemon WebSocket connection...');
|
||||
reconnectFn();
|
||||
}, 1000); // Retry every second
|
||||
};
|
||||
|
||||
connectDaemonSocket();
|
||||
}
|
||||
},
|
||||
setLanguage({ commit }, language) {
|
||||
@@ -97,6 +178,7 @@ const store = createStore({
|
||||
language: state => state.language,
|
||||
menu: state => state.menu,
|
||||
socket: state => state.socket,
|
||||
daemonSocket: state => state.daemonSocket,
|
||||
menuNeedsUpdate: state => state.menuNeedsUpdate,
|
||||
},
|
||||
modules: {
|
||||
@@ -106,6 +188,7 @@ const store = createStore({
|
||||
|
||||
if (store.state.isLoggedIn && store.state.user) {
|
||||
store.dispatch('initializeSocket');
|
||||
store.dispatch('initializeDaemonSocket');
|
||||
}
|
||||
|
||||
export default store;
|
||||
|
||||
Reference in New Issue
Block a user