That’s right, but the WebSocket browser API is event driven so the browser HAS TO recv from the socket and dispatch a JS event as soon as data is available.
You’ll get proper back pressure on websockets with synchronous clients that read messages actively.
This is a browser API spec problem more than a protocol problem.