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.

Povezani članci