HTTP pārsūtīšanas starpniekserverim konfigurējiet Gorilla Dialer.Proxy. WebSocket URL paliek galamērķis:

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)

Šis fragments pieder lietotnes savienojuma funkcijai, kur pieejami net/url, net/http, time un github.com/gorilla/websocket. Apstrādājiet err un jebkuru neveiksmīgu handshake atbildi, pēc tam pārvaldiet conn ar parasto ziņojumu un aizvēršanas dzīves ciklu. Atļautam publiskam WSS galapunktam HTTP starpniekserveru saraksts piedāvā kandidātus proxyURL.

HTTP starpniekservera dialer atver starpnieksavienojumu un nosūta CONNECT galamērķim. Wss gadījumā galamērķa TLS iet caur izveidoto tuneli pirms WebSocket handshake.

NetDialContext pielāgo zemākā līmeņa TCP savienojumu. Norādīšana tikai uz starpniekservera portu neievieš CONNECT. Ja ir iestatīts arī Proxy, pielāgotais tīkla callback izveido savienojumu ar starpnieku, bet starpniekservera slānis veic sarunas.

Saglabājiet galamērķa resursdatora nosaukumu wss URL, lai parastā TLS identitātes pārbaude attiektos uz paredzēto serveri.

Saistītie raksti