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 আপগ্রেড প্রতিক্রিয়া এবং পরবর্তী WebSocket ট্রাফিক থেকে আলাদা রাখুন।

সফল সংযোগ সেশনের শুরুর মাত্র। অ্যাপ্লিকেশনের পুরো জীবনকালে গ্রহণ/প্রেরণ বাতিল ও সম্পদ পরিষ্কার রাখা স্পষ্ট রাখুন; এই স্কেচের সেটআপ সময়সীমা প্রতিটি পরবর্তী বার্তার জন্য সম্পূর্ণ নীতি নয়।

সম্পর্কিত নিবন্ধ