კონფიგურაცია გაუკეთეთ ClientWebSocket-ის პარამეტრებს ConnectAsync-ის გამოძახებამდე. ჯერ კავშირის დაწყება და შემდეგ პროქსის მინიჭება ძალიან გვიან არის ამ ხელის ჩამორთმევისთვის.

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. გამოიყენეთ სერტიფიკატის ტიპი და ავთენტიფიკაციის მექანიზმი, რომლებსაც თქვენს განლაგებაში მხარს უჭერენ runtime, პლატფორმა და პროქსი სერვისი.

WebProxy-ის სერტიფიკატები პროქსის ეკუთვნის. ClientWebSocketOptions-ს ასევე აქვს ცალკე Credentials თვისება WebSocket სერვერის ავთენტიფიკაციისთვის. ერთის მინიჭება ავტომატურად არ აკმაყოფილებს მეორე მხარეს.

უსაფრთხო WebSocket კავშირისას უარყოფილმა პროქსი გვირაბმა შეიძლება საერთოდ შეუშალოს ხელი დანიშნულების WebSocket ხელის ჩამორთმევის დაწყებას. გამოყავით პროქსი კავშირისა და ავთენტიფიკაციის მტკიცებულებები დანიშნულების HTTP upgrade პასუხისა და შემდგომი WebSocket ტრაფიკისგან.

წარმატებული კავშირი მხოლოდ სესიის დასაწყისია. მიღების/გაგზავნის გაუქმება და რესურსების გასუფთავება გამოკვეთილი შეინახეთ აპლიკაციის მთელი სიცოცხლის განმავლობაში; ამ ესკიზში მოცემული დაყენების ვადა არ არის სრული პოლიტიკა ყოველი მომდევნო შეტყობინებისთვის.

დაკავშირებული სტატიები