Gorilla WebSocket: დააკონფიგურირეთ Dialer.Proxy HTTP CONNECT-ისთვის
დააკონფიგურირეთ Dialer.Proxy HTTP forward proxy-სთვის, ნაცვლად იმისა, რომ ალტერნატიული TCP მისამართი დასრულებულ proxy გვირაბად მიიჩნიოთ.
HTTP forward proxy-სთვის დააკონფიგურირეთ Gorilla-ს Dialer.Proxy. WebSocket URL რჩება დანიშნულების ადგილად:
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 endpoint-ისთვის HTTP proxy სია გთავაზობთ კანდიდატებს proxyURL-ისთვის.
HTTP proxy dialer ხსნის შუამავალ კავშირს და აგზავნის CONNECT-ს დანიშნულებისთვის. wss-ისთვის დანიშნულების TLS გადის დამყარებულ გვირაბში WebSocket handshake-ამდე.
NetDialContext ამუშავებს ქვედა დონის TCP კავშირს. მხოლოდ proxy პორტზე მიმართვა CONNECT-ს არ ახორციელებს. როცა Proxy-ც დაყენებულია, მორგებული ქსელური callback უკავშირდება შუამავალს, ხოლო proxy ფენა მართავს მოლაპარაკებას.
შეინარჩუნეთ დანიშნულების ჰოსტის სახელი wss URL-ში, რათა ჩვეულებრივი TLS იდენტიფიკაციის შემოწმება გავრცელდეს განზრახ სერვერზე.