Fix: Daemon WebSocket mit benutzerdefiniertem Protokoll 'yourpart-protocol'
Problem: - Daemon-Service verwendet libwebsockets mit benutzerdefiniertem Protokoll - Frontend versuchte Standard-WebSocket-Verbindung ohne Protokoll - JSON-Nachrichten fehlten user_id Feld Lösung: - WebSocket-Verbindung mit 'yourpart-protocol' Protokoll - JSON-Nachrichten mit user_id Feld korrigiert - Apache-Konfiguration für benutzerdefiniertes Protokoll angepasst Protokoll-Details: - Protokoll: 'yourpart-protocol' (libwebsockets C-Bibliothek) - Port: 4551 (Daemon-Service) - Ping/Pong: Alle 30 Sekunden - Message-Format: JSON mit user_id Feld - Events: setUserId, getWorkerStatus, production_ready, etc. Frontend-Änderungen: - new WebSocket(url, 'yourpart-protocol') - JSON mit user_id: state.user.id - Apache: ProxyPass mit upgrade=websocket für /ws/
This commit is contained in:
@@ -130,11 +130,12 @@ const store = createStore({
|
|||||||
}
|
}
|
||||||
console.log('🔌 Initializing Daemon WebSocket connection to:', import.meta.env.VITE_DAEMON_SOCKET);
|
console.log('🔌 Initializing Daemon WebSocket connection to:', import.meta.env.VITE_DAEMON_SOCKET);
|
||||||
try {
|
try {
|
||||||
const daemonSocket = new WebSocket(import.meta.env.VITE_DAEMON_SOCKET);
|
const daemonSocket = new WebSocket(import.meta.env.VITE_DAEMON_SOCKET, 'yourpart-protocol');
|
||||||
|
|
||||||
daemonSocket.onopen = () => {
|
daemonSocket.onopen = () => {
|
||||||
console.log('✅ Daemon WebSocket connected successfully');
|
console.log('✅ Daemon WebSocket connected successfully');
|
||||||
const payload = JSON.stringify({
|
const payload = JSON.stringify({
|
||||||
|
user_id: state.user.id,
|
||||||
event: 'setUserId',
|
event: 'setUserId',
|
||||||
data: { userId: state.user.id }
|
data: { userId: state.user.id }
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -37,8 +37,9 @@
|
|||||||
RewriteCond %{HTTP:Connection} upgrade [NC]
|
RewriteCond %{HTTP:Connection} upgrade [NC]
|
||||||
RewriteRule ^/ws/(.*)$ "ws://localhost:4551/$1" [P,L]
|
RewriteRule ^/ws/(.*)$ "ws://localhost:4551/$1" [P,L]
|
||||||
|
|
||||||
# Blockiere alle anderen /ws/ Requests (nur WebSocket-Upgrade erlaubt)
|
# WebSocket-Proxy für Daemon-Verbindungen mit benutzerdefiniertem Protokoll
|
||||||
ProxyPass "/ws/" "!"
|
ProxyPass "/ws/" "ws://localhost:4551/" upgrade=websocket
|
||||||
|
ProxyPassReverse "/ws/" "ws://localhost:4551/"
|
||||||
|
|
||||||
ErrorLog /var/log/apache2/yourpart.error.log
|
ErrorLog /var/log/apache2/yourpart.error.log
|
||||||
CustomLog /var/log/apache2/yourpart.access.log combined
|
CustomLog /var/log/apache2/yourpart.access.log combined
|
||||||
|
|||||||
Reference in New Issue
Block a user