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 იდენტიფიკაციის შემოწმება გავრცელდეს განზრახ სერვერზე.

დაკავშირებული სტატიები