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 جواب کو سنبھالیں، پھر معمول کے پیغام اور بندش کے لائف سائیکل سے conn کا انتظام کریں۔ اجازت یافتہ عوامی WSS اینڈ پوائنٹ کے لیے، HTTP پراکسی فہرست proxyURL کے لیے امیدوار فراہم کرتی ہے۔

HTTP پراکسی ڈائلر درمیانی کنکشن کھولتا ہے اور منزل کے لیے CONNECT بھیجتا ہے۔ wss کے لیے، WebSocket handshake سے پہلے قائم شدہ ٹنل سے گزر کر منزل کا TLS جاتا ہے۔

NetDialContext نچلی سطح کے TCP کنکشن کو حسب ضرورت بناتا ہے۔ اسے صرف پراکسی پورٹ کی طرف اشارہ کرنا CONNECT نافذ نہیں کرتا۔ جب Proxy بھی مقرر ہو، تو حسب ضرورت نیٹ ورک callback درمیانی سے جڑتا ہے، جبکہ پراکسی لیئر گفت و شنید سنبھالتی ہے۔

wss URL میں منزل کا ہوسٹ نام رکھیں تاکہ معمول کی TLS شناخت کی جانچ مطلوبہ سرور پر لاگو ہو۔

متعلقہ مضامین