Gorilla WebSocket: конфигуришите Dialer.Proxy за HTTP CONNECT
Конфигуришите Dialer.Proxy за HTTP forward прокси уместо да алтернативну TCP адресу третирате као завршени прокси тунел.
За HTTP forward прокси конфигуришите Gorilla-ин Dialer.Proxy. WebSocket URL остаје одредиште:
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)
Овај фрагмент припада функцији повезивања апликације, уз доступне net/url, net/http, time и github.com/gorilla/websocket. Обрадите err и сваки неуспели handshake одговор, затим управљајте conn кроз уобичајени животни циклус порука и затварања. За дозвољену јавну WSS крајњу тачку списак HTTP проксија нуди кандидате за proxyURL.
HTTP прокси диалер отвара посредничку везу и шаље CONNECT за одредиште. За wss, TLS одредишта пролази кроз успостављени тунел пре WebSocket handshake-а.
NetDialContext прилагођава нижу TCP везу. Усмеравање само на прокси порт не имплементира CONNECT. Када је и Proxy постављен, прилагођени мрежни callback повезује се са посредником, док прокси слој води преговоре.
Задржите име хоста одредишта у wss URL-у како би се уобичајена TLS провера идентитета применила на предвиђени сервер.