Fún HTTP forward proxy, ṣètò Dialer.Proxy ti Gorilla. URL WebSocket ṣì jẹ́ ibi tí a ń lọ:

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)

Ẹ̀ka yìí wà nínú iṣẹ́ ìsopọ̀ ohun èlò náà, pẹ̀lú net/url, net/http, time àti github.com/gorilla/websocket. Ṣàkóso err àti ìdáhùn handshake tí ó kùnà, lẹ́yìn náà ṣàkóso conn nípasẹ̀ ìgbésí ayé ìfiránṣẹ́ àti ìpàdé déédéé. Fún endpoint WSS gbogbo ènìyàn tí a gbà láàyè, àkójọ proxy HTTP ń pèsè àwọn olùdíje fún proxyURL.

Dialer proxy HTTP ń ṣí ìsopọ̀ àárín, ó sì ń fi CONNECT ránṣẹ́ fún ibi tí a ń lọ. Fún wss, TLS ibi tí a ń lọ ń gba ẹ̀wọ̀n tí a ti dá kalẹ̀ kí handshake WebSocket tó bẹ̀rẹ̀.

NetDialContext ń ṣe àtúnṣe ìsopọ̀ TCP ní ìpele ìsàlẹ̀. Lílọ sí ojú-ọ̀nà proxy nìkan kò ṣe CONNECT. Nígbà tí Proxy bá tún wà, callback nẹ́tíwọ́kì àkànṣe ń bá alárinà sọ̀rọ̀, nígbà tí ìpele proxy ń ṣàkóso ìjíròrò.

Pa orúkọ agbàlejò ibi tí a ń lọ mọ́ nínú URL wss kí ìwádìí ìdánimọ̀ TLS déédéé lè kan sápùtà tí a fẹ́.

Àwọn àpilẹ̀kọ tó jọra