Gorilla WebSocket: konfiguroni Dialer.Proxy për HTTP CONNECT
Konfiguroni Dialer.Proxy për një proxy HTTP përpara në vend që të trajtoni një adresë TCP alternative si një tunel proxy të përfunduar.
Për një proxy HTTP përpara, konfiguroni Dialer.Proxy të Gorilla. URL-ja e WebSocket mbetet destinacioni:
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)
Ky fragment i përket funksionit të lidhjes së aplikacionit, me net/url, net/http, time dhe github.com/gorilla/websocket të disponueshme. Trajtoni err dhe çdo përgjigje handshake të dështuar, më pas menaxhoni conn përmes ciklit normal të jetës së mesazheve dhe mbylljes. Për një pikë fundore publike WSS të lejuar, lista e proxy-ve HTTP ofron kandidatë për proxyURL.
Dialer-i i proxy HTTP hap lidhjen ndërmjetëse dhe dërgon CONNECT për destinacionin. Për wss, TLS i destinacionit kalon përmes tunelit të vendosur përpara handshake-ut WebSocket.
NetDialContext personalizon lidhjen TCP të nivelit më të ulët. Drejtimi vetëm në një port proxy nuk zbaton CONNECT. Kur Proxy është gjithashtu i vendosur, callback-u i personalizuar i rrjetit lidhet me ndërmjetësin, ndërsa shtresa proxy merret me negociatat.
Mbajeni emrin e hostit të destinacionit në URL-në wss, në mënyrë që kontrolli normal i identitetit TLS të zbatohet për serverin e synuar.