Gorilla WebSocket: konfigurirajte Dialer.Proxy za HTTP CONNECT
Konfigurirajte Dialer.Proxy za HTTP forward proxy umjesto da alternativnu TCP adresu tretirate kao dovršeni proxy tunel.
Za HTTP forward proxy konfigurirajte Gorillin Dialer.Proxy. WebSocket URL ostaje odredište:
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)
Ovaj fragment pripada funkciji povezivanja aplikacije, uz dostupne net/url, net/http, time i github.com/gorilla/websocket. Obradite err i svaki neuspjeli handshake odgovor, zatim upravljajte conn kroz uobičajeni životni ciklus poruka i zatvaranja. Za dopuštenu javnu WSS krajnju točku popis HTTP proxyja nudi kandidate za proxyURL.
HTTP proxy dialer otvara posredničku vezu i šalje CONNECT za odredište. Za wss, TLS odredišta prolazi kroz uspostavljeni tunel prije WebSocket handshakea.
NetDialContext prilagođava nižu TCP vezu. Usmjeravanje samo na proxy port ne implementira CONNECT. Kada je i Proxy postavljen, prilagođeni mrežni callback uspostavlja vezu s posrednikom, dok proxy sloj vodi pregovore.
Zadržite ime hosta odredišta u wss URL-u kako bi se uobičajena TLS provjera identiteta primijenila na predviđeni poslužitelj.