Ar gyfer forward proxy HTTP, ffurfweddwch Dialer.Proxy Gorilla. Mae URL WebSocket yn parhau i fod y gyrchfan:

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)

Mae'r darn hwn yn perthyn i ffwythiant cysylltu'r ap, gyda net/url, net/http, time a github.com/gorilla/websocket ar gael. Trinwch err ac unrhyw ymateb handshake aflwyddiannus, yna rheolwch conn drwy gylch bywyd arferol negeseuon a chau. Ar gyfer pwynt terfyn WSS cyhoeddus a ganiateir, mae'r rhestr proxy HTTP yn darparu ymgeiswyr ar gyfer proxyURL.

Mae dialydd y proxy HTTP yn agor y cysylltiad cyfryngol ac yn anfon CONNECT ar gyfer y gyrchfan. Ar gyfer wss, mae TLS y gyrchfan yn dilyn trwy'r twnnel a sefydlwyd cyn handshake WebSocket.

Mae NetDialContext yn addasu'r cysylltiad TCP lefel isaf. Nid yw ei bwyntio'n unig i borth proxy yn gweithredu CONNECT. Pan fydd Proxy hefyd wedi'i osod, mae'r callback rhwydwaith addasedig yn cysylltu â'r cyfryngwr, tra bod haen y proxy yn trin y trafodaethau.

Cadwch enw gwesteiwr y gyrchfan yn URL wss fel bod y gwiriad hunaniaeth TLS arferol yn berthnasol i'r gweinydd a fwriadwyd.

Erthyglau cysylltiedig