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
This commit is contained in:
Pierre Arnaud
2026-01-30 16:40:20 +01:00
parent 6b9187cf6e
commit 23f79244ae

View File

@@ -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);
}