Gorilla WebSocket: конфигурирајте Dialer.Proxy за HTTP CONNECT
Конфигурирајте Dialer.Proxy за HTTP forward прокси наместо алтернативна TCP адреса да ја третирате како завршен прокси тунел.
За HTTP forward прокси конфигурирајте го Dialer.Proxy на Gorilla. 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 проверка на идентитетот да се применува на предвидениот сервер.