âAny compression extensions negotiated apply only to the channel they are negotiated on -- therefore, any compression extension in the initial handshake applies only to logical channel 1. If WebSocket payload data is masked by a per-frame key, such masking is applied to frames for each logical channel separately.â
Â
Providing the ability to specify a compression extension per sub-channel greatly increases the complexity of the implementation. I believe it would be simpler if the compressed logical channels were grouped in a compressed connection, while the logical channels that do not need compression were grouped in a separate non-compressed connection. Maintaining a DEFLATE window per sub-channel is very expensive, doing so could eliminate all the benefits of multiplexing.Â
But if you believe that there is a strong use case for per channel compression, then we could support both options (common compression and per channel) by having logical channel 1 perform its own handshake rather than using the initial handshake for it.
Note Well: Messages sent to this mailing list are the opinions of the senders and do not imply endorsement by the IETF.