HTTP yönlendirme proxy'si için Gorilla'nın Dialer.Proxy'sini yapılandırın. WebSocket URL'si hedef olarak kalır:

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)

Bu parça, net/url, net/http, time ve github.com/gorilla/websocket kullanılabilir durumdayken uygulamanın bağlantı işlevine aittir. err ve başarısız handshake yanıtını işleyin, ardından conn'u normal mesaj ve kapatma yaşam döngüsüyle yönetin. İzin verilen genel bir WSS uç noktası için HTTP proxy listesi proxyURL için adaylar sunar.

HTTP proxy dialer'ı aracı bağlantıyı açar ve hedef için CONNECT gönderir. wss için hedefin TLS'i WebSocket handshake'inden önce kurulan tünelden geçer.

NetDialContext alt düzey TCP bağlantısını özelleştirir. Yalnızca bir proxy portuna yöneltmek CONNECT'i uygulamaz. Proxy de ayarlanmışsa, özel ağ callback'i aracıya bağlanır, proxy katmanı ise görüşmeyi yürütür.

Hedef ana bilgisayar adını wss URL'sinde tutun; böylece normal TLS kimlik doğrulaması amaçlanan sunucuya uygulanır.

İlgili makaleler