Airson proxy HTTP air adhart, rèitich Dialer.Proxy Gorilla. Tha an URL WebSocket fhathast na cheann-uidhe:

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)

Buinidh am pìos seo do ghnìomh ceangail na h-aplacaid, le net/url, net/http, time agus github.com/gorilla/websocket rim faighinn. Làimhsich err agus freagairt handshake sam bith a dh'fhàillig, an uairsin stiùir conn tron chuairt-beatha àbhaisteach de theachdaireachdan is dùnadh. Airson ceann-uidhe WSS poblach ceadaichte, bheir liosta proxy HTTP tagraichean airson proxyURL.

Fosglaids an dialer proxy HTTP an ceangal eadar-mheadhanach agus cuiridh e CONNECT dhan cheann-uidhe. Airson wss, thèid TLS a' chinn-uidhe tron tunail a chaidh a stèidheachadh ro handshake WebSocket.

Nì NetDialContext gnàthachadh air a' cheangal TCP aig ìre nas ìsle. Chan eil a bhith ga chomharrachadh gu port proxy a-mhàin a' cur CONNECT an gnìomh. Nuair a tha Proxy cuideachd air a shuidheachadh, nì an callback lìonra gnàthaichte feum air an eadar-mheadhanair, fhad 's a tha an ìre proxy a' làimhseachadh an co-rèiteachaidh.

Cum ainm-aoigheachd a' chinn-uidhe anns an URL wss gus am bi an sgrùdadh dearbh-aithne TLS àbhaisteach a' buntainn ris an fhrithealaiche a thathar an dùil.

Artaigilean co-cheangailte