gorilla / websocket

Package gorilla/websocket is a fast, well-tested and widely used WebSocket implementation for Go.

Home Page:https://gorilla.github.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[feature] why not support permessage-deflate?

garyfu9527 opened this issue · comments

I see EnableCompression used in Upgrader function,But it cannot be set outside this function, why not support it?

The upgrader field is for negotiating compression. The connection method turns write compression on or off (when negotiated).

but in Upgrade function, you have do something about compress,look below:
// Negotiate PMCE var compress bool if u.EnableCompression { for _, ext := range parseExtensions(r.Header) { if ext[""] != "permessage-deflate" { continue } compress = true break } } ... if compress { c.newCompressionWriter = compressNoContextTakeover c.newDecompressionReader = decompressNoContextTakeover } ... if compress { p = append(p, "Sec-WebSocket-Extensions: permessage-deflate; server_no_context_takeover; client_no_context_takeover\r\n"...) }

Are you sure that it can set compression flag in connection method?

I rewrite Upgrade function,and set EnableCompression to true, it looks like ok.