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:
Torsten Schulz (local)
2025-09-04 00:36:34 +02:00
parent a028ed79ce
commit 522e5b767d
2 changed files with 5 additions and 3 deletions

View File

@@ -130,11 +130,12 @@ const store = createStore({
}
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, 'yourpart-protocol');
daemonSocket.onopen = () => {
console.log('✅ Daemon WebSocket connected successfully');
const payload = JSON.stringify({
user_id: state.user.id,
event: 'setUserId',
data: { userId: state.user.id }
});

View File

@@ -37,8 +37,9 @@
RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteRule ^/ws/(.*)$ "ws://localhost:4551/$1" [P,L]
# Blockiere alle anderen /ws/ Requests (nur WebSocket-Upgrade erlaubt)
ProxyPass "/ws/" "!"
# WebSocket-Proxy für Daemon-Verbindungen mit benutzerdefiniertem Protokoll
ProxyPass "/ws/" "ws://localhost:4551/" upgrade=websocket
ProxyPassReverse "/ws/" "ws://localhost:4551/"
ErrorLog /var/log/apache2/yourpart.error.log
CustomLog /var/log/apache2/yourpart.access.log combined