From dc4e57ebaa90cc65ca7b90cf4dba2b995b12c0a2 Mon Sep 17 00:00:00 2001 From: HF Date: Mon, 4 Jul 2022 10:10:02 +0200 Subject: [PATCH] handle APISocketEvents async --- src/socket/APISocketServer.js | 8 ++++---- src/socket/SocketEvents.js | 11 +++++++++++ 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/socket/APISocketServer.js b/src/socket/APISocketServer.js index d603db94..4d919580 100644 --- a/src/socket/APISocketServer.js +++ b/src/socket/APISocketServer.js @@ -79,10 +79,10 @@ class APISocketServer { this.ping = this.ping.bind(this); this.broadcastChatMessage = this.broadcastChatMessage.bind(this); - socketEvents.on('broadcast', this.broadcast); - socketEvents.on('onlineCounter', this.broadcastOnlineCounter); - socketEvents.on('pixelUpdate', this.broadcastPixelBuffer); - socketEvents.on('chatMessage', this.broadcastChatMessage); + socketEvents.onAsync('broadcast', this.broadcast); + socketEvents.onAsync('onlineCounter', this.broadcastOnlineCounter); + socketEvents.onAsync('pixelUpdate', this.broadcastPixelBuffer); + socketEvents.onAsync('chatMessage', this.broadcastChatMessage); setInterval(this.ping, 45 * 1000); } diff --git a/src/socket/SocketEvents.js b/src/socket/SocketEvents.js index bde86cd9..d1815378 100644 --- a/src/socket/SocketEvents.js +++ b/src/socket/SocketEvents.js @@ -22,6 +22,17 @@ class SocketEvents extends EventEmitter { }; } + /* + * async event + */ + onAsync(evtString, cb) { + this.on(evtString, (...args) => { + setImmediate(() => { + cb(...args); + }); + }); + } + /* * broadcast message via websocket * @param message Buffer Message to send