ConnectAsync ကို မခေါ်မီ ClientWebSocket ၏ ရွေးချယ်စရာများကို ပြင်ဆင်ပါ။ ချိတ်ဆက်မှုကို အရင်စတင်ပြီး proxy ကို နောက်မှ သတ်မှတ်ခြင်းသည် ထို handshake အတွက် အလွန်နောက်ကျပါသည်။

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);

လိပ်စာများနှင့် အကောင့် ကိန်းရှင်များသည် ဥပမာများသာဖြစ်သည်။ လိုအပ်သော namespace များတွင် System.Net၊ System.Net.WebSockets နှင့် System.Threading ပါဝင်သည်။ သင့် ဖြန့်ကျက်မှုရှိ runtime၊ platform နှင့် proxy ဝန်ဆောင်မှုက ပံ့ပိုးသော အထောက်အထား အမျိုးအစားနှင့် စစ်ဆေးအတည်ပြုမှု ယန္တရားကို အသုံးပြုပါ။

WebProxy ၏ အထောက်အထားများသည် proxy ပိုင်ဖြစ်သည်။ ClientWebSocketOptions တွင် WebSocket ဆာဗာ၏ စစ်ဆေးအတည်ပြုမှုအတွက် သီးခြား Credentials ဂုဏ်သတ္တိလည်း ရှိသည်။ တစ်ခုကို သတ်မှတ်ခြင်းက အခြားတစ်ဖက်ကို အလိုအလျောက် မဖြည့်ဆည်းပါ။

လုံခြုံသော WebSocket ချိတ်ဆက်မှုတွင် ငြင်းပယ်ခံရသော proxy လိုဏ်ခေါင်းသည် ဦးတည်ရာ၏ WebSocket handshake ကို လုံးဝမစတင်နိုင်အောင် တားဆီးနိုင်သည်။ proxy ချိတ်ဆက်မှုနှင့် စစ်ဆေးအတည်ပြုမှု အထောက်အထားများကို ဦးတည်ရာ၏ HTTP upgrade တုံ့ပြန်မှုနှင့် နောက်ပိုင်း WebSocket အသွားအလာမှ ခွဲထုတ်ပါ။

အောင်မြင်သော ချိတ်ဆက်မှုသည် session ၏ အစမျှသာ ဖြစ်သည်။ အက်ပ်၏ သက်တမ်းတစ်လျှောက်လုံး လက်ခံ/ပို့ဆောင်မှု ပယ်ဖျက်ခြင်းနှင့် အရင်းအမြစ် ရှင်းလင်းခြင်းကို ရှင်းလင်းစွာ ထားပါ။ ဤ ပုံကြမ်းရှိ သတ်မှတ်ချိန်သည် နောက်ဆက်တွဲ မက်ဆေ့ချ်တိုင်းအတွက် ပြည့်စုံသော မူဝါဒ မဟုတ်ပါ။

ဆက်စပ်ဆောင်းပါးများ