Gorilla WebSocket: HTTP CONNECT-এর জন্য Dialer.Proxy কনফিগার করুন
বিকল্প TCP ঠিকানাকে সম্পূর্ণ প্রক্সি টানেল ধরে না নিয়ে HTTP ফরওয়ার্ড প্রক্সির জন্য Dialer.Proxy কনফিগার করুন।
HTTP ফরওয়ার্ড প্রক্সির জন্য 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 প্রতিক্রিয়া সামলান, তারপর স্বাভাবিক বার্তা ও বন্ধ lifecycle-এ conn পরিচালনা করুন। অনুমোদিত পাবলিক WSS এন্ডপয়েন্টের জন্য HTTP প্রক্সি তালিকা proxyURL-এর জন্য প্রার্থী যোগায়।
HTTP প্রক্সি ডায়ালার মধ্যস্থ সংযোগ খোলে এবং গন্তব্যের জন্য CONNECT পাঠায়। wss-এর ক্ষেত্রে WebSocket handshake-এর আগে প্রতিষ্ঠিত টানেলের মধ্য দিয়ে গন্তব্যের TLS যায়।
NetDialContext নিম্ন-স্তরের TCP সংযোগ কাস্টমাইজ করে। শুধু প্রক্সি পোর্টে নির্দেশ করলে CONNECT বাস্তবায়িত হয় না। Proxy-ও সেট থাকলে কাস্টম নেটওয়ার্ক callback মধ্যস্থের সাথে সংযোগ করে, আর প্রক্সি স্তর আলোচনা সামলায়।
wss URL-এ গন্তব্যের হোস্টনেম রাখুন, যাতে স্বাভাবিক TLS পরিচয় যাচাই অভীষ্ট সার্ভারে প্রযোজ্য হয়।