Gorilla WebSocket: seadista Dialer.Proxy HTTP CONNECTi jaoks
Seadista Dialer.Proxy HTTP edastava puhverserveri jaoks, selle asemel et käsitleda alternatiivset TCP-aadressi valmis puhverserveri tunnelina.
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.