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