Конфигуришите опције ClientWebSocket пре позива ConnectAsync. Прво започети везу па доделити прокси након тога прекасно је за тај 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);

Адресе и променљиве налога су илустративне. Потребни именски простори укључују System.Net, System.Net.WebSockets и System.Threading. Користите тип акредитива и механизам аутентификације које подржавају runtime, платформа и прокси услуга у вашем распоређивању.

Акредитиви WebProxy припадају проксију. ClientWebSocketOptions има и засебно својство Credentials за аутентификацију WebSocket сервера. Додела једног не задовољава аутоматски другу страну.

За сигурну WebSocket везу, одбијени прокси тунел може спречити да handshake WebSocket-а одредишта уопште почне. Одвојите доказе прокси везе и аутентификације од HTTP upgrade одговора одредишта и каснијег WebSocket саобраћаја.

Успешна веза је само почетак сесије. Држите отказивање пријема/слања и чишћење ресурса експлицитним током целог животног века апликације; рок за подешавање у овој скици није потпуна политика за сваку наредну поруку.

Повезани чланци