Gorilla WebSocket: konfigurirajte Dialer.Proxy za HTTP CONNECT
Konfigurirajte Dialer.Proxy za HTTP forward proxy umjesto da alternativnu TCP adresu tretirate kao završeni proxy tunel.
Za HTTP forward proxy konfigurirajte Gorilla-in 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 za povezivanje 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 tačku lista 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, a 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 server.