I'd like to add proxy support to websocket.

In the client.go there is NewClient function which I think I need to change to add support for connection through proxy. The way I see it is to add something along the lines of

    if (config.Proxy != nil) {
        err = newProxyConn(config.Proxy)
                if err != nil {
            return
            }
    }

before err = hybiClientHandshake(config, br, bw) call. Function newProxyConn will basically send a CONNECT request to the proxy server and then websocket will proceed. This of course will require Proxy to be added to Config struct.

This seems too easy to be true. I'm new to golang and probably missing something. All comments and suggestions are welcome.

Comment From: ianlancetaylor

Can you outline the user visible changes? Is it just a new Config.Proxy field? Thanks.

Comment From: dmytro-i

Yes, that should be it. I can try copying websocket source files into my project and playing with it to see if it works.

Comment From: fortuna

There's no need to add proxy support to the websocket package. You can already use a proxy.

Dial the destination using your proxy, then call websocket.NewClient on the connection.

Adding explicit proxy support will unnecessarily bloat the package.