From 23f79244aedc4a386d6f77564d0146d45b8fd78e Mon Sep 17 00:00:00 2001 From: Pierre Arnaud Date: Fri, 30 Jan 2026 16:40:20 +0100 Subject: [PATCH] Fix SignalR event args spreading for Electron handlers - Changed event handler to receive args as single array parameter - Spread array elements as individual arguments to match Socket.IO behavior --- src/ElectronNET.Host/api/signalr-bridge.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/ElectronNET.Host/api/signalr-bridge.js b/src/ElectronNET.Host/api/signalr-bridge.js index e07001f..96fa888 100644 --- a/src/ElectronNET.Host/api/signalr-bridge.js +++ b/src/ElectronNET.Host/api/signalr-bridge.js @@ -75,15 +75,18 @@ class SignalRBridge { setupMessageHandlers() { // Handle generic events from .NET - this is where .NET's Emit() calls arrive - this.connection.on('event', (eventName, ...args) => { + this.connection.on('event', (eventName, args) => { safeConsole.log(`[SignalRBridge] Received event: ${eventName}`); + // args is an array from .NET - spread it when calling handlers + const argsArray = Array.isArray(args) ? args : [args]; + // Check if we have handlers registered for this event if (this.eventHandlers.has(eventName)) { const handlers = this.eventHandlers.get(eventName); handlers.forEach(handler => { try { - handler(...args); + handler(...argsArray); } catch (err) { safeConsole.error(`[SignalRBridge] Error in event handler for ${eventName}:`, err); }