Data of alternating sizes (some compressed, some not) sent out with
perMessageDeflate:true
will arrive as garbage in browsers.
var ws = require('ws'); var d1 = new Uint8Array(32768), var d2 = new Uint8Array(16); var server = new ws.Server({port: 4444, perMessageDeflate: true}); server.on('connection', function(socket) { socket.send(d1); socket.send(d2); socket.send(d1); socket.close(); });