Gorilla WebSocket: cumraigh Dialer.Proxy le haghaidh HTTP CONNECT
Cumraigh Dialer.Proxy le haghaidh seachfhreastalaí HTTP tosaigh seachas seoladh TCP malartach a láimhseáil mar thollán seachfhreastalaí críochnaithe.
Le haghaidh seachfhreastalaí HTTP tosaigh, cumraigh Dialer.Proxy Gorilla. Fanann an URL WebSocket mar an gceann scríbe:
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)
Baineann an blúire seo le feidhm cheangail an fheidhmchláir, agus net/url, net/http, time agus github.com/gorilla/websocket ar fáil. Láimhseáil err agus aon fhreagra handshake teipthe, ansin bainistigh conn trí shaolré normal na dteachtaireachtaí agus an dúnadh. Le haghaidh críochphointe WSS poiblí ceadaithe, soláthraíonn liosta seachfhreastalaí HTTP iarrthóirí do proxyURL.
Osclaíonn dialer an tseachfhreastalaí HTTP an nasc idirmheánach agus seolann CONNECT don cheann scríbe. I gcás wss, téann TLS an chinn scríbe tríd an tollán bunaithe roimh an handshake WebSocket.
Cuireann NetDialContext saincheaptha ar an nasc TCP íochtarach. Ní chuireann díriú ar phort seachfhreastalaí amháin CONNECT i bhfeidhm. Nuair a bhíonn Proxy socraithe freisin, glaoann an callback líonra saincheaptha ar an idirghabhálaí, agus láimhseálann an ciseal seachfhreastalaí an chaibidlíocht.
Coinnigh óstainm an chinn scríbe san URL wss ionas go mbaineann an ghnáthsheiceáil aitheantais TLS leis an bhfreastalaí beartaithe.