Fyri eina HTTP-áframleiðandi proxyna setur tú Dialer.Proxy hjá Gorilla upp. WebSocket-URL-in verður áfram málið:

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)

Hesin parturin hoyrir til sambandsskipanina í nýtsluskipanini, við net/url, net/http, time og github.com/gorilla/websocket tøkum. Handfar err og eitt og hvørt miseydnað handshake-svar, stýr síðani conn gjøgnum vanliga boð- og latingslívsskeið. Fyri ein loyvdan almennan WSS-endapunt veitir HTTP-proxylistin evnar til proxyURL.

HTTP-proxydialarin letur millumliggjandi sambandið upp og sendir CONNECT fyri málið. Fyri wss gongur TLS hjá málinum gjøgnum tunnilin, sum er stovnaður, áðrenn WebSocket-handshake.

NetDialContext tillagar tað undirliggjandi TCP-sambandið. At peika tí bert á eina proxyport innførir ikki CONNECT. Tá Proxy eisini er sett, ringir tann serstaka netverks-callbackin til millumgongdina, meðan proxylagið tekur sær av samráðingini.

Varðveit vertsnavnið hjá málinu í wss-URL-ini, so at vanliga TLS-identitetskannanin er galdandi fyri tí ætlaða ambætaranum.

Skyldar greinar