Gorilla WebSocket: konfigurearje Dialer.Proxy foar HTTP CONNECT
Konfigurearje Dialer.Proxy foar in HTTP-forwardproxy ynstee fan in alternative TCP-adres as in foltôge proxytunnel te behanneljen.
Foar in HTTP-forwardproxy konfigurearje jo Gorilla's Dialer.Proxy. De WebSocket-URL bliuwt de bestimming:
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)
Dit fragmint heart by de ferbiningsfunksje fan 'e applikaasje, mei net/url, net/http, time en github.com/gorilla/websocket beskikber. Behannelje err en elk mislearre handshake-antwurd, en behear dêrnei conn fia de normale berjocht- en slútingslibbenssyklus. Foar in tastien iepenbier WSS-einpunt leveret de HTTP-proxylist kandidaten foar proxyURL.
De HTTP-proxydialer iepenet de tuskenferbining en stjoert CONNECT foar de bestimming. Foar wss giet de TLS fan 'e bestimming troch de oanleine tunnel foar de WebSocket-handshake.
NetDialContext past de legere TCP-ferbining oan. It allinnich op in proxy-poarte rjochtsje ymplementearret gjin CONNECT. As Proxy ek ynsteld is, skillet de oanpaste netwurk-callback de tuskenpersoan, wylst de proxylaach de ûnderhanneling docht.
Hâld de hostnamme fan 'e bestimming yn 'e wss-URL, sadat de normale TLS-identiteitskontrôle jildt foar de bedoelde server.