ConnectAsync çağırışından əvvəl ClientWebSocket parametrlərini konfiqurasiya edin. Əvvəlcə bağlantını başladıb proxy-ni sonra təyin etmək o handshake üçün gecdir.

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

Ünvanlar və hesab dəyişənləri nümunədir. Tələb olunan ad məkanlarına System.Net, System.Net.WebSockets və System.Threading daxildir. Yerləşdirmənizdə runtime, platforma və proxy xidmətinin dəstəklədiyi etimad növündən və autentifikasiya mexanizmindən istifadə edin.

WebProxy etimadları proxy-yə aiddir. ClientWebSocketOptions-un WebSocket serverinin autentifikasiyası üçün ayrıca Credentials xassəsi də var. Birini təyin etmək digər tərəfi avtomatik təmin etmir.

Təhlükəsiz WebSocket bağlantısı üçün rədd edilmiş proxy tuneli hədəfin WebSocket handshake-inin ümumiyyətlə başlamasına mane ola bilər. Proxy bağlantısı və autentifikasiya dəlillərini hədəfin HTTP yüksəltmə cavabından və sonrakı WebSocket trafikindən ayırın.

Uğurlu bağlantı yalnız sessiyanın başlanğıcıdır. Qəbul/göndərmə ləğvini və resurs təmizliyini tətbiqin ömrü boyu açıq saxlayın; bu eskizdəki quraşdırma müddəti hər sonrakı mesaj üçün tam siyasət deyil.

Əlaqəli məqalələr