Gorilla WebSocket: ikkonfigura Dialer.Proxy għal HTTP CONNECT
Ikkonfigura Dialer.Proxy għal proxy HTTP forward minflok ma tittratta indirizz TCP alternattiv bħala mina tal-proxy kompluta.
Għal proxy HTTP forward, ikkonfigura d-Dialer.Proxy ta' Gorilla. L-URL tal-WebSocket tibqa' d-destinazzjoni:
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)
Dan il-framment jappartjeni għall-funzjoni tal-konnessjoni tal-applikazzjoni, b'net/url, net/http, time u github.com/gorilla/websocket disponibbli. Immaniġġja err u kwalunkwe tweġiba ta' handshake falluta, imbagħad immaniġġja conn permezz taċ-ċiklu tal-ħajja normali tal-messaġġi u l-għeluq. Għal endpoint WSS pubbliku permess, il-lista tal-proxy HTTP tipprovdi kandidati għal proxyURL.
Id-dialer tal-proxy HTTP jiftaħ il-konnessjoni intermedjarja u jibgħat CONNECT għad-destinazzjoni. Għal wss, it-TLS tad-destinazzjoni tgħaddi mill-mina stabbilita qabel il-handshake tal-WebSocket.
NetDialContext jippersonalizza l-konnessjoni TCP tal-livell aktar baxx. Li tippuntaha biss lejn port tal-proxy ma timplimentax CONNECT. Meta Proxy wkoll ikun issettjat, il-callback tan-netwerk personalizzat iċempel lill-intermedjarju, filwaqt li s-saff tal-proxy jimmaniġġja n-negozjar.
Żomm l-isem tal-host tad-destinazzjoni fl-URL wss sabiex il-verifika normali tal-identità TLS tapplika għas-server maħsub.