feat: update to new cluster protocol

This commit is contained in:
2025-10-26 12:43:02 +01:00
parent 698a150162
commit 62badbc692
2 changed files with 48 additions and 27 deletions

View File

@@ -263,7 +263,8 @@ class WebSocketClient {
try {
const data = JSON.parse(event.data);
logger.debug('WebSocket message received:', data);
logger.debug('WebSocket message type:', data.type);
const messageTopic = data.topic || data.type;
logger.debug('WebSocket message topic:', messageTopic);
this.emit('message', data);
this.handleMessage(data);
} catch (error) {
@@ -288,21 +289,21 @@ class WebSocketClient {
}
handleMessage(data) {
switch (data.type) {
case 'cluster_update':
this.emit('clusterUpdate', data);
break;
case 'node_discovery':
this.emit('nodeDiscovery', data);
break;
case 'firmware_upload_status':
this.emit('firmwareUploadStatus', data);
break;
case 'rollout_progress':
this.emit('rolloutProgress', data);
break;
default:
logger.debug('Unknown WebSocket message type:', data.type);
const messageTopic = data.topic || data.type;
// Handler map for different WebSocket message types
const handlers = {
'cluster/update': (data) => this.emit('clusterUpdate', data),
'node/discovery': (data) => this.emit('nodeDiscovery', data),
'firmware/upload/status': (data) => this.emit('firmwareUploadStatus', data),
'rollout/progress': (data) => this.emit('rolloutProgress', data)
};
const handler = handlers[messageTopic];
if (handler) {
handler(data);
} else {
logger.debug('Unknown WebSocket message topic:', messageTopic);
}
}