Gorilla WebSocket: Dialer.Proxy fir HTTP CONNECT konfiguréieren
Konfiguréiert Dialer.Proxy fir en HTTP-Forward-Proxy, amplaz eng alternativ TCP-Adress als fäerdege Proxy-Tunnel ze behandelen.
Fir en HTTP-Forward-Proxy konfiguréiert dem Gorilla säin Dialer.Proxy. D'WebSocket-URL bleift d'Zil:
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)
Dëse Fragment gehéiert an d'Verbindungsfunktioun vun der Applikatioun, mat net/url, net/http, time an github.com/gorilla/websocket verfügbar. Behandelt err an all feelgeschloen Handshake-Antwert, a verwalt duerno conn iwwer den normale Message- a Schlussliewenszyklus. Fir en erlaabten ëffentlechen WSS-Endpunkt liwwert d'HTTP-Proxy-Lëscht Kandidaten fir proxyURL.
Den HTTP-Proxy-Dialer mécht d'Zwëschenverbindung op a schéckt CONNECT fir d'Zil. Bei wss geet den TLS vum Zil duerch den etabléierten Tunnel virum WebSocket-Handshake.
NetDialContext passt d'ënnescht TCP-Verbindung un. Et just op en Proxy-Port ze riichten implementéiert keen CONNECT. Wann Proxy och gesat ass, rifft dee personaliséierte Netzwierk-Callback den Zwëschenhändler un, während d'Proxy-Schicht d'Verhandlung iwwerhëlt.
Behält den Hostnumm vum Zil an der wss-URL, sou datt déi normal TLS-Identitéitspréifung fir de gewënschte Server gëllt.