Gorilla WebSocket: konfigurirajte Dialer.Proxy za HTTP CONNECT
Konfigurirajte Dialer.Proxy za posredniški strežnik HTTP naprej, namesto da alternativni naslov TCP obravnavate kot dokončan proxy tunel.
Za posredniški strežnik HTTP naprej konfigurirajte Gorillin Dialer.Proxy. URL WebSocket ostaja cilj:
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)
Ta del spada v funkcijo povezave aplikacije, kjer so na voljo net/url, net/http, time in github.com/gorilla/websocket. Obdelajte err in vsak neuspešen odgovor handshake, nato upravljajte conn skozi običajni življenjski cikel sporočil in zapiranja. Za dovoljeno javno končno točko WSS seznam posredniških strežnikov HTTP ponuja kandidate za proxyURL.
Dialer posredniškega strežnika HTTP odpre vmesno povezavo in pošlje CONNECT za cilj. Pri wss TLS cilja poteka skozi vzpostavljen tunel pred handshakom WebSocket.
NetDialContext prilagodi nižjo povezavo TCP. Usmerjanje samo na vrata posredniškega strežnika ne izvede CONNECT. Če je nastavljen tudi Proxy, callback omrežja poveže s posrednikom, medtem ko plast proxy vodi pogajanja.
Ohranite ime gostitelja cilja v URL wss, da se običajno preverjanje identitete TLS uporabi za predvideni strežnik.