From 00041f86d6c222d25a2b549c4873c99e7fe7a095 Mon Sep 17 00:00:00 2001 From: velvettear Date: Wed, 20 Apr 2022 18:36:55 +0200 Subject: [PATCH] changed some stuff regarding backpressure --- classes/AudioServer.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/classes/AudioServer.js b/classes/AudioServer.js index b2a451c..7bd8e5a 100644 --- a/classes/AudioServer.js +++ b/classes/AudioServer.js @@ -81,9 +81,20 @@ class AudioServer { const timestamp = Date.now(); const stream = fs.createReadStream(this.buffer.file); stream.on('data', (data) => { + const backpressure = false; for (let index = 0; index < this.clients.length; index++) { - this.clients[index].audiosocket.write(data); + if (!this.clients[index].audiosocket.write(data)) { + backpressure = true; + } } + if (backpressure === true) { + logger.debug('BACKPRESSURE DETECTED - PAUSING STREAM!'); + stream.pause(); + } + }); + stream.on('drain', () => { + logger.debug('STREAM IS DRAINED - RESUMING!'); + stream.resume(); }); stream.on('close', () => { for (let index = 0; index < this.clients.length; index++) {