សម្រាប់ proxy HTTP បញ្ជូនបន្ត សូមកំណត់ Dialer.Proxy របស់ Gorilla។ URL WebSocket នៅតែជាគោលដៅ៖

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)

ផ្នែកនេះស្ថិតនៅក្នុងអនុគមន៍ភ្ជាប់របស់កម្មវិធី ដោយមាន net/url, net/http, time និង github.com/gorilla/websocket។ ដោះស្រាយ err និងការឆ្លើយតប handshake ដែលបរាជ័យ បន្ទាប់មកគ្រប់គ្រង conn តាមវដ្តជីវិតសារ និងការបិទធម្មតា។ សម្រាប់ចំណុចបញ្ចប់ WSS សាធារណៈដែលត្រូវបានអនុញ្ញាត បញ្ជី proxy HTTP ផ្តល់បេក្ខជនសម្រាប់ proxyURL។

dialer របស់ proxy HTTP បើកការតភ្ជាប់កម្រិតកណ្តាល ហើយផ្ញើ CONNECT សម្រាប់គោលដៅ។ សម្រាប់ wss TLS របស់គោលដៅឆ្លងកាត់ផ្លូវរូងដែលបានបង្កើតមុន handshake WebSocket។

NetDialContext ប្តូរតាមតម្រូវការការតភ្ជាប់ TCP កម្រិតទាប។ ការចង្អុលវាទៅកាន់ច្រក proxy តែម្នាក់ឯងមិនអនុវត្ត CONNECT ទេ។ នៅពេល Proxy ក៏ត្រូវបានកំណត់ ការហៅត្រឡប់បណ្តាញផ្ទាល់ខ្លួនភ្ជាប់ទៅអ្នកកណ្តាល ខណៈស្រទាប់ proxy គ្រប់គ្រងការចរចា។

រក្សាឈ្មោះ host គោលដៅក្នុង URL wss ដើម្បីឱ្យការត្រួតពិនិត្យអត្តសញ្ញាណ TLS ធម្មតាអនុវត្តចំពោះម៉ាស៊ីនមេដែលបានបម្រុង។

អត្ថបទពាក់ព័ន្ធ