Gorilla WebSocket: nakonfigurujte Dialer.Proxy pro HTTP CONNECT
Nakonfigurujte Dialer.Proxy pro HTTP forward proxy, místo abyste alternativní adresu TCP považovali za dokončený proxy tunel.
Pro HTTP forward proxy nakonfigurujte Dialer.Proxy z Gorilla. WebSocket URL zůstává cílem:
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)
Tento fragment patří do spojovací funkce aplikace, kde jsou dostupné net/url, net/http, time a github.com/gorilla/websocket. Ošetřete err a případnou neúspěšnou odpověď handshake, poté spravujte conn běžným životním cyklem zpráv a zavírání. Pro povolený veřejný koncový bod WSS seznam HTTP proxy dodává kandidáty pro proxyURL.
HTTP proxy dialer otevře zprostředkující připojení a odešle CONNECT pro cíl. U wss prochází TLS cíle zavedeným tunelem před handshake WebSocket.
NetDialContext upravuje nižší TCP připojení. Pouhé nasměrování na port proxy neimplementuje CONNECT. Je-li nastaven i Proxy, vlastní síťový callback naváže spojení s prostředníkem, zatímco proxy vrstva vede vyjednávání.
Ponechte název hostitele cíle v URL wss, aby se běžná kontrola identity TLS vztahovala na zamýšlený server.