Gorilla WebSocket: sukonfigūruokite Dialer.Proxy HTTP CONNECT
Sukonfigūruokite Dialer.Proxy HTTP perdavimo proxy, o ne laikykite alternatyvaus TCP adreso užbaigtu proxy tuneliu.
HTTP perdavimo proxy atveju sukonfigūruokite Gorilla Dialer.Proxy. WebSocket URL išlieka paskirties vieta:
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 fragmentas priklauso programos ryšio funkcijai, kai prieinami net/url, net/http, time ir github.com/gorilla/websocket. Apdorokite err ir bet kokį nepavykusį handshake atsakymą, tada valdykite conn įprastu pranešimų ir uždarymo gyvavimo ciklu. Leidžiamam viešam WSS galiniam taškui HTTP proxy sąrašas siūlo kandidatus proxyURL.
HTTP proxy dialeris atidaro tarpinį ryšį ir siunčia CONNECT paskirties vietai. Wss atveju paskirties TLS eina per nustatytą tunelį prieš WebSocket handshake.
NetDialContext pritaiko žemesnio lygio TCP ryšį. Nukreipus jį tik į proxy prievadą, CONNECT neįgyvendinamas. Kai Proxy taip pat nustatytas, pasirinktinė tinklo callback funkcija jungiasi prie tarpininko, o proxy sluoksnis tvarko derybas.
Išsaugokite paskirties pagrindinio kompiuterio vardą wss URL, kad įprasta TLS tapatybės patikra būtų taikoma numatytam serveriui.