Vir 'n HTTP-voortstuurkits stel jy Gorilla se Dialer.Proxy op. Die WebSocket-URL bly die bestemming:

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)

Hierdie fragment hoort in die toepassing se verbindingsfunksie, met net/url, net/http, time en github.com/gorilla/websocket beskikbaar. Hanteer err en enige mislukte handskud-respons, en bestuur daarna conn deur die normale boodskap- en sluitlewensiklus. Vir 'n toegelate publieke WSS-eindpunt verskaf die HTTP-proxylys kandidate vir proxyURL.

Die HTTP-proxy-dialer open die tussenliggende verbinding en stuur CONNECT vir die bestemming. Vir wss volg die bestemming se TLS deur die gevestigde tonnel voor die WebSocket-handskud.

NetDialContext pas die onderliggende TCP-verbinding aan. Om dit net op 'n proxy-poort te rig, implementeer nie CONNECT nie. Wanneer Proxy ook gestel is, skakel die pasgemaakte netwerk-terugroeping die tussenpersoon, terwyl die proxy-laag die onderhandeling hanteer.

Hou die bestemmingsgasheernaam in die wss-URL sodat die normale TLS-identiteitskontrole op die beoogde bediener van toepassing is.

Verwante artikels