Foar in HTTP-forwardproxy konfigurearje jo Gorilla's Dialer.Proxy. De WebSocket-URL bliuwt de bestimming:

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)

Dit fragmint heart by de ferbiningsfunksje fan 'e applikaasje, mei net/url, net/http, time en github.com/gorilla/websocket beskikber. Behannelje err en elk mislearre handshake-antwurd, en behear dêrnei conn fia de normale berjocht- en slútingslibbenssyklus. Foar in tastien iepenbier WSS-einpunt leveret de HTTP-proxylist kandidaten foar proxyURL.

De HTTP-proxydialer iepenet de tuskenferbining en stjoert CONNECT foar de bestimming. Foar wss giet de TLS fan 'e bestimming troch de oanleine tunnel foar de WebSocket-handshake.

NetDialContext past de legere TCP-ferbining oan. It allinnich op in proxy-poarte rjochtsje ymplementearret gjin CONNECT. As Proxy ek ynsteld is, skillet de oanpaste netwurk-callback de tuskenpersoan, wylst de proxylaach de ûnderhanneling docht.

Hâld de hostnamme fan 'e bestimming yn 'e wss-URL, sadat de normale TLS-identiteitskontrôle jildt foar de bedoelde server.

Relatearre artikelen