Gorilla WebSocket: i-configure ang Dialer.Proxy para sa HTTP CONNECT
I-configure ang Dialer.Proxy para sa HTTP forward proxy sa halip na ituring ang alternatibong TCP address bilang kumpletong proxy tunnel.
Para sa HTTP forward proxy, i-configure ang Dialer.Proxy ng Gorilla. Ang WebSocket URL ay nananatiling destinasyon:
proxyURL, err := url.Parse("http://proxy.example:8080")
if err != nil {
return err
}
dialer := websocket.Dialer{
Proxy: http.ProxyURL(proxyURL),
HandshakeTimeout: 15 * time.Second,
}
conn, response, err := dialer.DialContext(
ctx, "wss://events.example/stream", nil)
Ang fragment na ito ay kabilang sa connection function ng application, na may net/url, net/http, time at github.com/gorilla/websocket na magagamit. Pangasiwaan ang err at anumang nabigong handshake response, pagkatapos ay pamahalaan ang conn sa normal na lifecycle ng mensahe at pagsasara. Para sa pinapayagang pampublikong WSS endpoint, ang listahan ng HTTP proxy ay nagbibigay ng mga kandidato para sa proxyURL.
Binubuksan ng HTTP proxy dialer ang intermediary connection at nagpapadala ng CONNECT para sa destinasyon. Para sa wss, dumadaan ang TLS ng destinasyon sa itinatag na tunnel bago ang WebSocket handshake.
Iniaangkop ng NetDialContext ang mas mababang antas na TCP connection. Ang pagturo lamang nito sa proxy port ay hindi nagpapatupad ng CONNECT. Kapag nakatakda rin ang Proxy, ang custom na network callback ay humahawak sa intermediary, habang pinangangasiwaan ng proxy layer ang negosasyon.
Panatilihin ang hostname ng destinasyon sa wss URL upang ang normal na TLS identity check ay mailapat sa nilalayong server.