HTTP edastava puhverserveri jaoks seadista Gorilla Dialer.Proxy. WebSocketi URL jääb sihtkohaks:

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)

See fragment kuulub rakenduse ühendusfunktsiooni, kus on saadaval net/url, net/http, time ja github.com/gorilla/websocket. Käsitle err-i ja kõiki ebaõnnestunud handshake'i vastuseid, seejärel halda conni tavalise sõnumite ja sulgemise elutsükli kaudu. Lubatud avaliku WSS-i lõpp-punkti jaoks pakub HTTP puhverserverite loend kandidaate proxyURL-i jaoks.

HTTP puhverserveri dialer avab vahendava ühenduse ja saadab sihtkohale CONNECT. WSS-i puhul läbib sihtkoha TLS enne WebSocketi handshake'i loodud tunnelit.

NetDialContext kohandab madalama taseme TCP-ühendust. Ainult puhverserveri pordile osutamine ei rakenda CONNECTi. Kui ka Proxy on seatud, loob kohandatud võrgu-callback ühenduse vahendajaga, samal ajal kui puhverserveri kiht haldab läbirääkimist.

Jäta sihtkoha hostinimi wss-URL-i, et tavaline TLS-identiteedi kontroll kehtiks kavandatud serverile.

Seotud artiklid