Gorilla WebSocket: configura Dialer.Proxy para HTTP CONNECT
Configura Dialer.Proxy para un proxy HTTP de reenvío en lugar de tratar un enderezo TCP alternativo como un túnel de proxy completado.
Para un proxy HTTP de reenvío, configura Dialer.Proxy de Gorilla. O URL de WebSocket segue a ser o destino:
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)
Este fragmento pertence á función de conexión da aplicación, con net/url, net/http, time e github.com/gorilla/websocket dispoñibles. Xestiona err e calquera resposta de handshake fallida, e despois xestiona conn mediante o ciclo de vida normal de mensaxes e peche. Para un punto final WSS público permitido, a lista de proxies HTTP fornece candidatos para proxyURL.
O dialer do proxy HTTP abre a conexión intermedia e envía CONNECT para o destino. Para wss, o TLS do destino avanza polo túnel establecido antes do handshake de WebSocket.
NetDialContext personaliza a conexión TCP de nivel inferior. Apuntalo só a un porto de proxy non implementa CONNECT. Cando tamén se define Proxy, a devolución de chamada de rede personalizada marca o intermediario, mentres que a capa de proxy xestiona a negociación.
Mantén o nome de host do destino no URL wss para que a comprobación normal de identidade TLS se aplique ao servidor previsto.