Gorilla WebSocket: u habee Dialer.Proxy ee HTTP CONNECT
U habee Dialer.Proxy ee proxy HTTP hore halkii aad ka dhigi lahayd cinwaan TCP kale tunnel proxy dhamaystiran.
Proxy HTTP hore, u habee Dialer.Proxy ee Gorilla. URL-ka WebSocket waa meesha loo socdo:
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)
Qaybtani waxay ku jirtaa shaqada isku xirka abka, iyadoo net/url, net/http, time iyo github.com/gorilla/websocket diyaar yihiin. Maaree err iyo jawaab kasta o handshake fashilmay, ka dib maaree conn iyada oo loo marayo wareegga caadiga ah ee fariinta iyo xiritaanka. Xiriirka WSS ee dadweynaha ee la ogolaaday, liiska proxy HTTP wuxuu bixiyaa musharrixiinta proxyURL.
Dialer-ka proxy HTTP wuxuu furaa xiriirka dhexdhexaadka ah wuxuuna u diraa CONNECT meesha loo socdo. Wss, TLS-ka meesha loo socdo wuxuu maraa tunnel-ka la dhisay ka hor handshake WebSocket.
NetDialContext wuxuu habeeyaa xiriirka TCP ee heerka hoose. In kaliya loo tilmaamo dekedda proxy ma hirgeliso CONNECT. Marka Proxy sidoo kale la dejiyo, callback-ka shabakadda gaarka ah wuxuu la xiriiraa dhexdhexaadiyaha, halka lakabka proxy uu maareeyo gorgortanka.
Ku hay magaca martigeliyaha meesha loo socdo URL-ka wss si hubinta aqoonsiga TLS ee caadiga ah loo mariyo serverka loogu talagalay.