Gorilla WebSocket: stel Dialer.Proxy op vir HTTP CONNECT
Stel Dialer.Proxy op vir 'n HTTP-voortstuurkits eerder as om 'n alternatiewe TCP-adres as 'n voltooide proxy-tonnel te behandel.
Vir 'n HTTP-voortstuurkits stel jy Gorilla se Dialer.Proxy op. Die WebSocket-URL bly die bestemming:
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)
Hierdie fragment hoort in die toepassing se verbindingsfunksie, met net/url, net/http, time en github.com/gorilla/websocket beskikbaar. Hanteer err en enige mislukte handskud-respons, en bestuur daarna conn deur die normale boodskap- en sluitlewensiklus. Vir 'n toegelate publieke WSS-eindpunt verskaf die HTTP-proxylys kandidate vir proxyURL.
Die HTTP-proxy-dialer open die tussenliggende verbinding en stuur CONNECT vir die bestemming. Vir wss volg die bestemming se TLS deur die gevestigde tonnel voor die WebSocket-handskud.
NetDialContext pas die onderliggende TCP-verbinding aan. Om dit net op 'n proxy-poort te rig, implementeer nie CONNECT nie. Wanneer Proxy ook gestel is, skakel die pasgemaakte netwerk-terugroeping die tussenpersoon, terwyl die proxy-laag die onderhandeling hanteer.
Hou die bestemmingsgasheernaam in die wss-URL sodat die normale TLS-identiteitskontrole op die beoogde bediener van toepassing is.