ConnectAsync कॉल करने से पहले ClientWebSocket के विकल्प कॉन्फ़िगर करें। पहले कनेक्शन शुरू करना और बाद में प्रॉक्सी निर्दिष्ट करना उस हैंडशेक के लिए बहुत देर हो जाता है।

using var socket = new ClientWebSocket();
socket.Options.Proxy = new WebProxy("http://203.0.113.10:8080")
{
    Credentials = new NetworkCredential(proxyUser, proxyPassword)
};
using var deadline = new CancellationTokenSource(TimeSpan.FromSeconds(20));
await socket.ConnectAsync(new Uri("wss://example.com/socket"),
                          deadline.Token);

पते और खाता चर उदाहरण हैं। आवश्यक नामस्थानों में System.Net, System.Net.WebSockets और System.Threading शामिल हैं। अपने परिनियोजन में रनटाइम, प्लेटफ़ॉर्म और प्रॉक्सी सेवा द्वारा समर्थित क्रेडेंशियल प्रकार और प्रमाणीकरण तंत्र का उपयोग करें।

WebProxy के क्रेडेंशियल प्रॉक्सी के होते हैं। ClientWebSocketOptions में WebSocket सर्वर के प्रमाणीकरण के लिए अलग Credentials गुण भी है। एक को निर्दिष्ट करने से दूसरा पक्ष अपने आप संतुष्ट नहीं होता।

सुरक्षित WebSocket कनेक्शन में, अस्वीकृत प्रॉक्सी टनल गंतव्य का WebSocket हैंडशेक शुरू होने से ही रोक सकती है। प्रॉक्सी कनेक्शन और प्रमाणीकरण के साक्ष्य को गंतव्य की HTTP upgrade प्रतिक्रिया और बाद के WebSocket ट्रैफ़िक से अलग रखें।

सफल कनेक्शन सत्र की केवल शुरुआत है। ऐप्लिकेशन के पूरे जीवनकाल के लिए प्राप्ति/प्रेषण रद्दीकरण और संसाधन सफ़ाई स्पष्ट रखें; इस रेखाचित्र की सेटअप समय-सीमा हर आगामी संदेश के लिए पूरी नीति नहीं है।

संबंधित लेख