undici
undici copied to clipboard
permessage-deflate support in websocket
This would solve...
The implementation should look like...
I have also considered...
Additional context
class Queue {
queue = []
compress = false
run () {
while (this.queue.length) {
const item = this.queue[0]
if (!item.done) return
this.queue.shift()
}
}
add (item) {
if (Buffer.isBuffer(item)) {
this.queue.push({ done: true, value: item })
} else if (item instanceof Blob) {
const promise = item.arrayBuffer()
const queued = { done: false, value: promise }
promise.then((value) => {
queued.done = true
queued.value = Buffer.from(value)
this.run()
})
this.queue.push(queued)
}
}
}
a very simple queue that dispatches buffers/blobs in the order they were received. Not sure if it's worth sacrificing performance over sending blobs, though.