diff --git a/lib/sender.js b/lib/sender.js index 75c78fb35..d385d6456 100644 --- a/lib/sender.js +++ b/lib/sender.js @@ -318,6 +318,7 @@ class Sender { const perMessageDeflate = this._extensions[PerMessageDeflate.extensionName]; + this._bufferedBytes += data.length; this._deflating = true; perMessageDeflate.compress(data, options.fin, (_, buf) => { if (this._socket.destroyed) { @@ -336,6 +337,7 @@ class Sender { return; } + this._bufferedBytes -= data.length; this._deflating = false; options.readOnly = false; this.sendFrame(Sender.frame(buf, options), cb); diff --git a/test/websocket.test.js b/test/websocket.test.js index ef3746028..64d52bec9 100644 --- a/test/websocket.test.js +++ b/test/websocket.test.js @@ -185,13 +185,16 @@ describe('WebSocket', () => { ws.on('open', () => { ws.send('foo'); + + assert.strictEqual(ws.bufferedAmount, 3); + ws.send('bar', (err) => { assert.ifError(err); assert.strictEqual(ws.bufferedAmount, 0); wss.close(done); }); - assert.strictEqual(ws.bufferedAmount, 3); + assert.strictEqual(ws.bufferedAmount, 6); }); } );