-
-
Notifications
You must be signed in to change notification settings - Fork 2.5k
Closed
Labels
Description
The bufferedAmount property doesn't work correctly.
This code:
var WebSocket = require('ws')
var socket = new WebSocket('wss://echo.websocket.org')
socket.onopen = function () {
socket.send('abc')
console.log('bufferedAmount after send: ' + socket.bufferedAmount)
}
socket.onmessage = function () {
console.log('bufferedAmount after onmessage: ' + socket.bufferedAmount)
}
setInterval(function () {
console.log('bufferedAmount on interval: ' + socket.bufferedAmount)
}, 1000)Prints:
bufferedAmount after send: 10
bufferedAmount after onmessage: 1
bufferedAmount on interval: 1
bufferedAmount on interval: 1
bufferedAmount on interval: 1
bufferedAmount on interval: 1
bufferedAmount on interval: 1
bufferedAmount on interval: 1
bufferedAmount on interval: 1
...
In Chrome and Firefox, on the other hand, this is what gets output:
bufferedAmount after send: 3
bufferedAmount after onmessage: 0
bufferedAmount on interval: 0
bufferedAmount on interval: 0
bufferedAmount on interval: 0
bufferedAmount on interval: 0
bufferedAmount on interval: 0
bufferedAmount on interval: 0
...
Without a functioning bufferedAmount property, it's not possible to use the code I've written to implement backpressure in the browser on the server as well.
Reactions are currently unavailable