Задайте прокси на ClientWebSocket преди свързване
Конфигурирайте прокси за .NET WebSocket и неговите идентификационни данни преди установяване на връзката, като ги пазите отделно от данните за дестинацията.
Конфигурирайте опциите на 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. Използвайте типа идентификационни данни и механизма за удостоверяване, поддържани от средата за изпълнение, платформата и прокси услугата във вашето внедряване.
Идентификационните данни на WebProxy принадлежат на проксито. ClientWebSocketOptions има и отделно свойство Credentials за удостоверяване на WebSocket сървъра. Задаването на едното не удовлетворява автоматично другата страна.
При защитена WebSocket връзка отказан прокси тунел може да попречи изобщо да започне ръкостискането на WebSocket с дестинацията. Отделяйте доказателствата за прокси връзката и удостоверяването от HTTP upgrade отговора на дестинацията и последващия WebSocket трафик.
Успешната връзка е само началото на сесията. Поддържайте отменянето на получаване/изпращане и почистването на ресурси явни за целия живот на приложението; крайният срок за настройка в тази скица не е пълна политика за всяко следващо съобщение.