Nastavte proxy ClientWebSocket pred pripojením
Nakonfigurujte proxy .NET WebSocket a jeho prihlasovacie údaje pred nadviazaním pripojenia a udržiavajte ich oddelene od údajov cieľa.
Nakonfigurujte možnosti ClientWebSocket pred volaním ConnectAsync. Najprv začať pripojenie a potom priradiť proxy je pre toto handshake príliš neskoro.
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);
Adresy a premenné účtu sú ilustratívne. Požadované priestory názvov zahŕňajú System.Net, System.Net.WebSockets a System.Threading. Použite typ prihlasovacích údajov a mechanizmus overovania, ktoré podporujú runtime, platforma a proxy služba vo vašom nasadení.
Prihlasovacie údaje WebProxy patria proxy. ClientWebSocketOptions má aj samostatnú vlastnosť Credentials na overenie servera WebSocket. Priradenie jednej automaticky neuspokojí druhú stranu.
Pri zabezpečenom pripojení WebSocket môže odmietnutý tunel proxy zabrániť tomu, aby handshake WebSocket cieľa vôbec začal. Oddeľte dôkazy o pripojení a overení proxy od odpovede HTTP upgrade cieľa a neskoršej prevádzky WebSocket.
Úspešné pripojenie je len začiatok relácie. Udržiavajte zrušenie prijímania/odosielania a čistenie prostriedkov explicitné po celú dobu životnosti aplikácie; lehota na nastavenie v tomto náčrte nie je úplná politika pre každú ďalšiu správu.