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 таних шалгалт зориулсан серверт үйлчлэх болно.

Холбоотой нийтлэлүүд