Gorilla WebSocket: ṣètò Dialer.Proxy fún HTTP CONNECT
Ṣètò Dialer.Proxy fún HTTP forward proxy dípò kí o ka àdírẹ́sì TCP míràn bíi ẹ̀wọ̀n proxy tí ó ti parí.
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ẹ́.