Gorilla WebSocket: HTTP CONNECT үшін Dialer.Proxy конфигурациялаңыз
Балама TCP мекенжайын аяқталған прокси туннелі деп санаудың орнына, HTTP forward прокси үшін Dialer.Proxy конфигурациялаңыз.
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 прокси dialer делдал байланысын ашады және межелі орынға CONNECT жібереді. wss үшін межелі орынның TLS-і WebSocket handshake алдында орнатылған туннель арқылы өтеді.
NetDialContext төменгі деңгейдегі TCP байланысын бейімдейді. Оны тек прокси портына бағыттау CONNECT-ті іске асырмайды. Proxy да орнатылған болса, таңдаулы желілік callback делдалға қосылады, ал прокси қабаты келіссөзді жүргізеді.
Межелі орынның хост атауын wss URL-де сақтаңыз, сонда әдеттегі TLS сәйкестік тексеруі көзделген серверге қолданылады.