Vendosni proxy-n e ClientWebSocket përpara lidhjes
Konfiguroni një proxy .NET WebSocket dhe kredencialet e tij përpara vendosjes së lidhjes, duke i mbajtur të ndara nga kredencialet e destinacionit.
Konfiguroni opsionet e ClientWebSocket përpara se të thërrisni ConnectAsync. Fillimi i lidhjes së pari dhe caktimi i proxy-t më pas është tepër vonë për atë 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);
Adresat dhe variablat e llogarisë janë ilustruese. Hapësirat e emrave të kërkuara përfshijnë System.Net, System.Net.WebSockets dhe System.Threading. Përdorni llojin e kredencialeve dhe mekanizmin e vërtetimit që mbështeten nga runtime, platforma dhe shërbimi proxy në vendosjen tuaj.
Kredencialet e WebProxy i përkasin proxy-t. ClientWebSocketOptions ka gjithashtu një veti të veçantë Credentials për vërtetimin e serverit WebSocket. Caktimi i njërës nuk e plotëson automatikisht palën tjetër.
Për një lidhje të sigurt WebSocket, një tunel proxy i refuzuar mund të pengojë fillimin fare të handshake-ut WebSocket të destinacionit. Ndani provat e lidhjes dhe vërtetimit të proxy-t nga përgjigjja HTTP upgrade e destinacionit dhe trafiku i mëvonshëm WebSocket.
Një lidhje e suksesshme është vetëm fillimi i sesionit. Mbani të qarta anulimin e marrjes/dërgimit dhe pastrimin e burimeve gjatë gjithë jetës së aplikacionit; afati i konfigurimit në këtë skicë nuk është një politikë e plotë për çdo mesazh pasues.