Websocket: Apakah ada dukungan socks5 untuk koneksi websocket?

Dibuat pada 10 Nov 2017  ·  7Komentar  ·  Sumber: gorilla/websocket

Can gorilla establish websocket connections through a socks5 proxy? Bisakah gorila membuat koneksi websocket melalui proxy socks5?

If not, is there a plan to do so? Jika tidak, apakah ada rencana untuk melakukannya?

Thank you! Terima kasih!

en

Komentar yang paling membantu

Bagaimana menambahkan bidang ini ke Dialer?

// ProxyDialerFromURL returns a dialer given a Proxy URL specification and an underlying
// dialer for it to make network requests. The Dialer.Dial method defaults to using an HTTP
// proxy if ProxyDialerFromURL is nil or the function returns an unknown scheme error.
//
// The ProxyFromURL function in the package golang.org/x/net/proxy can be used as 
// a ProxyDialerFromURL function.
ProxyDialerFromURL func(u *url.URL, forward Dialer) (Dialer, error) 
en

Semua 7 komentar

Anda dapat terhubung melalui proxy socks5 dengan menyetel bidang Dialer.NetDial ke metode Dial dari SOCKS5 Dialer .

 netDialer, err := proxy.SOCKS5( .... )
 if err != nil {
    handle error
 }
 dialer := websocket.Dialer{NetDial: netDialer.Dial}
 c, r, err := dialer.Dial(url, nil)
 if err != nil {
    handle error
}
en

We use the http.ProxyFromEnvironment function to setup the Dialer.Proxy field . Kami menggunakan fungsi http.ProxyFromEnvironment untuk mengatur bidang Dialer.Proxy .

if proxy == nil {
    proxy = http.ProxyFromEnvironment
}

...

    dialer: websocket.Dialer{
        Proxy:            proxy,
        ...
    },

Would it be possible to support this out of the box since golang recently added support for SOCKS5 from the environment? Apakah mungkin untuk mendukung ini di luar kotak karena golang baru-baru ini menambahkan dukungan untuk SOCKS5 dari lingkungan? They have a similar implementation for the transport package here . Mereka memiliki implementasi serupa untuk paket transportasi di sini .

en

@vitreuz I don't want to add a dependency outside the standard library, nor do I want to vendor the x/net package as was done here . @vitreuz Saya tidak ingin menambahkan ketergantungan di luar perpustakaan standar, saya juga tidak ingin vendor paket x/net seperti yang dilakukan di sini .

I am open to suggestions on how to modify the Dialer to enable easy use of golang.org/x/net/proxy by applications. Saya terbuka untuk saran tentang cara memodifikasi Dialer untuk memudahkan penggunaan golang.org/x/net/proxy oleh aplikasi.

en

Bagaimana menambahkan bidang ini ke Dialer?

// ProxyDialerFromURL returns a dialer given a Proxy URL specification and an underlying
// dialer for it to make network requests. The Dialer.Dial method defaults to using an HTTP
// proxy if ProxyDialerFromURL is nil or the function returns an unknown scheme error.
//
// The ProxyFromURL function in the package golang.org/x/net/proxy can be used as 
// a ProxyDialerFromURL function.
ProxyDialerFromURL func(u *url.URL, forward Dialer) (Dialer, error) 
en

@garyburd Your solution looks great. @garyburd Solusi Anda tampak hebat. It will solve the problem of needing to support SOCKS5 in our particular library NOAA . Ini akan memecahkan masalah kebutuhan untuk mendukung SOCKS5 di perpustakaan khusus kami NOAA . @melnikalex What do you think? @melnikalex Bagaimana menurut Anda?

en

@garyburd I like it. @garyburd saya menyukainya. Thank you! Terima kasih!

en

Another approach is to bundle the x/net/proxy package. Pendekatan lain adalah dengan menggabungkan paket x/net/proxy . This avoids adding yet another knob to Dialer and is a much better option than vendoring all of x/net. Ini menghindari penambahan tombol lain ke Dialer dan merupakan pilihan yang jauh lebih baik daripada menjual semua x/net.

en
Apakah halaman ini membantu?
0 / 5 - 0 peringkat